sched_lock && thread_lock()

Attilio Rao attilio at FreeBSD.org
Mon May 21 08:48:43 UTC 2007


Attilio Rao wrote:
> Jeff Roberson wrote:
>>
>> On Mon, 21 May 2007, Bruce Evans wrote:
>>
>>> On Sun, 20 May 2007, Jeff Roberson wrote:
>>>
>>>> Attilio and I have been working on addressing the increasing problem 
>>>> of sched_lock contention on -CURRENT.  Attilio has been addressing 
>>>> the parts of the kernel which do not need to fall under the 
>>>> scheduler lock and moving them into seperate locks.  For example, 
>>>> the ldt/gdt lock and clock lock which were committed earlier.  Also, 
>>>> using atomics for the vmcnt structure.
>>>
>>> Using atomics in the vmmeter struct is mostly just a pessimization and
>>> and obfuscation, since locks are still needed for accesses to more
>>> than one variable at a time.  For these cases, locks are needed for
>>
>> You are right, there are some cases which this pessimized.  I wanted 
>> to make sure the cnt members that previously were protected by the 
>> sched_lock were still correct.  However, I overlooked some of these 
>> which were accessed many at a time.  What should happen is we should 
>> find out if any locks do protect the remaining members and if so, 
>> don't use VMCNT*, but mark the header describing how they are protected.
> 
> Sorry, but I strongly disagree.

Ah, and about consistency of functions your previously described, I 
assume nothing vital is linked to it.
vmmeter is just a statistics collector and nothing else, so I don't 
expect nothing critical/vital happens from its fields (I'm sure a lot of 
variables are just bumped up and never decreased, for example). If that 
really happens we should fix that behaviour really, instead than making 
things a lot heavier.

Thanks,
Attilio



More information about the freebsd-arch mailing list