dynamically scale the size of the per cpu cache lists.
authordlg <dlg@openbsd.org>
Mon, 19 Jun 2017 23:57:12 +0000 (23:57 +0000)
committerdlg <dlg@openbsd.org>
Mon, 19 Jun 2017 23:57:12 +0000 (23:57 +0000)
commita11cecbbcfd10e2b38201d497c4c3514a5acf20d
tree75439925a1edfdaa0bb4455a550fe3c9120c4bdc
parentd2bfa962186fe2d1fb3b59e7a1cbe9bed7c1bcea
dynamically scale the size of the per cpu cache lists.

if the lock around the global depot of extra cache lists is contented
a lot in between the gc task runs, consider growing the number of
entries a free list can hold.

the size of the list is bounded by the number of pool items the
current set of pages can represent to avoid having cpus starve each
other. im not sure this semantic is right (or the least worst) but
we're putting it in now to see what happens.

this also means reality matches the documentation i just committed
in pool_cache_init.9.

tested by hrvoje popovski and amit kulkarni
ok visa@
sys/kern/subr_pool.c
sys/sys/pool.h