On 15 Apr 2015, at 19:45, Mike Belopuhov <m...@belopuhov.com> wrote:

> On 15 April 2015 at 13:29, kanonenvogel....@gmail.com
> <kanonenvogel....@gmail.com> wrote:
>> 
>> On 14 Apr 2015, at 18:35, Mike Belopuhov <m...@belopuhov.com> wrote:
>>> 
>>> Supposedly you don't have to KERNEL_LOCK for pool_{get,put} anymore.
>> Underlying uvm calls are not mp safe
> 
> True.
> 
>> and not protected by KERNEL_LOCK() calls.
>> 
> 
> They are, see pool_allocator_alloc.
Ok I see.
But pool_get() calls msleep() which is quite similar to tlseep() but lacks the
'kernel_lock is locked' assert. Except ktrace related calls those functions
look mp safe, and my system didn't crash without this assertion.
Assertion "KASSERT(timo || __mp_lock_held(&kernel_lock))" looks
 here. Also system has didn't crash with unlocked tsleep()
and wakeup() calls.
getnanotime() and friends functions are mp safe too.

Attachment: 0001-Wrong-assertion-from-tsleep-removed.patch
Description: Binary data

Attachment: 0002-Pipe-locks.patch
Description: Binary data


Reply via email to