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

Reply via email to