On 07.08.24 13:54, Mihai Popescu wrote: > On Wed, Aug 7, 2024 at 2:35 PM Janne Johansson <icepic...@gmail.com> wrote: >> >>> What is this kernel lock everybody talks about. I mean what is locked? >>> Some actions must be done and devs call lock before and after it is >>> done, they call unlock? >>> What is kernel lock doing exactly, it prevents other procedures to run? >> >> It is quite a large topic, but the 30 second intro is >> https://en.wikipedia.org/wiki/Giant_lock >> >> Lots of more detailed information is available with a bit of googling. >> >> -- >> May the most significant bit of your life be positive. > > I was on wikipedia, i did my gogling. There is too much spread and not > very much related to OpenBSD. > But it is a large topic i think. And i am not up to understand all. > > Thank you. >
That's a historic issue as well. Systems were not designed for more than one CPU back in the days. There are very few kernels and systems which had been designed from the ground up for supporting parallel tasks. From the top of my head: <https://en.wikipedia.org/wiki/Atari_Transputer_Workstation> <https://en.wikipedia.org/wiki/HeliOS> Issue with making those single CPU systems support parallelism is to carefully review the data structures. What once was global, really was either global or per CPU. Finding out about this and how to adopt to those new structures is a challenge, everyone has another view to. If you compare FreeBSD to DragonFlyBSD, or to Linux, OpenBSD, whatever, everyone gives it another try. We'll see. Even CPU interfaces have changed over time, so better not hurry with it. It really boils down to carefully reviewing global state and relations. For example: Is it one scheduler per N CPUs, or really should that be N schedulers per N CPUs and things like that. Regards, -- Christian