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.
0001-Wrong-assertion-from-tsleep-removed.patch
Description: Binary data
0002-Pipe-locks.patch
Description: Binary data