tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pool_cache_get behavior

> haad <> wrote:
>> ad@
>> KM_NOSLEEP... probably due to that implying UVM_MAP_TRYLOCK
>> The issue is that parts of kernel_map are pageable. Paging can take a
>> long time, and the map can be held locked while paging.
>> Therefore when we do a NOSLEEP allocation from kernel_map, it's also
>> implicitly a TRYLOCK one because we can't wait to lock the map.
> FYI: Related problem is described in PR/38270.  In this case, I guess
> kmem_map, which is used by pool(9) and is VM_MAP_INTRSAFE, could avoid
> trylock because map is locked by a spin-mutex (at IPL_VM).
> It is not the case for kernel_map (at IPL_DEFAULT), used by kmem(9).
> There is yamt-kmem branch which has been revamping this.  yamt?

yes, it's one of the problems to be fixed by the branch.
unfortunately i don't likely have enough time to work on the branch
in foreseeable future.
(if i had time i'd like to finish nfs-mp branch first. :-)


> -- 
> Mindaugas

Home | Main Index | Thread Index | Old Index