make malloc(9) mpsafe by using a mutex instead of splvm.
authordlg <dlg@openbsd.org>
Mon, 10 Jul 2017 23:49:10 +0000 (23:49 +0000)
committerdlg <dlg@openbsd.org>
Mon, 10 Jul 2017 23:49:10 +0000 (23:49 +0000)
commit7282a73c3cf7a0214a746f5aa15b1a50e734fd90
tree005718648366c69afd8b803dadf5971f09398377
parentbc09ec2978fb939d5d7bf1af1edcc3459c906b86
make malloc(9) mpsafe by using a mutex instead of splvm.

this is almost a straightforward change of spl ops with mutex ops,
except the accounting has been shuffled around. memory is counted
as used before an attempt to allocate it from uvm is made to prevent
overcommitting memory. this is modelled on how pools limit allocations.

the uvm bits have been eyeballed by kettenis@ who says they should be safe.
visa@ found some nits which have been fixed.

tested by chris@ and amit kulkarni
ok kettenis@ visa@ mpi@
sys/kern/kern_malloc.c
sys/kern/kern_malloc_debug.c