CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2017/05/17 02:13:33
Modified files:
sys/uvm : uvm_map.c
Log message:
Raise "uvm_map_entry_kmem_pool" IPL level to IPL_VM to prevent a deadlock.
A deadlock can occur when the uvm_km_thread(), running without KERNEL_LOCK()
is interrupted by and non-MPSAFE handler while holding the pool's mutex. At
that moment if another CPU is holding the KERNEL_LOCK() and wants to grab the
pool mutex, like in sys_kbind(), kaboom!
This is a temporaty solution, a more generate approach regarding mutexes and
un-KERNEL_LOCK()ed threads is beeing discussed.
Deadlock reported by sthen@, ok kettenis@