freebsd-nq/include
Brian Behlendorf a10287e00d kmem-cache: Use taskqs for ageing
Shift the cache and magazine ageing functionality over to the new
delayed taskq interfaces.  This allows us to abandon the kernels
delayed work queue interface and all the compatibility code it
requires.

However, the delayed taskq interface does not allow us to schedule
a task for a specfic cpu so the ageing code was slightly reworked.
The magazine ageing delay has been directly linked to the cache
ageing function.  The spl_cache_age() function invokes on_each_cpu()
in order to run spl_magazine_age() on each cpu.  It then blocks
waiting for them to complete and promptly reclaims any free slabs.

When restructing the code wasn't the primary goal I think the
new code is far more understable and maintainable.  It also should
help minimize magazine thrashing because free slabs are immediately
released after the magazine is aged.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2012-12-12 09:56:54 -08:00
..
fs Remove autotools products 2012-08-27 11:46:23 -07:00
linux Linux 3.7 compat, __clear_close_on_exec() removed 2012-10-18 13:36:44 -07:00
rpc Remove autotools products 2012-08-27 11:46:23 -07:00
sharefs Remove autotools products 2012-08-27 11:46:23 -07:00
sys kmem-cache: Use taskqs for ageing 2012-12-12 09:56:54 -08:00
util Remove autotools products 2012-08-27 11:46:23 -07:00
vm Remove autotools products 2012-08-27 11:46:23 -07:00
Makefile.am Add the release component to headers 2012-01-18 11:06:26 -08:00
spl-ctl.h Public Release Prep 2010-05-17 15:18:00 -07:00
spl-debug.h Add missing spl_debug_* helpers 2012-02-09 16:41:46 -08:00
spl-device.h Public Release Prep 2010-05-17 15:18:00 -07:00
spl-trace.h Split <sys/debug.h> header 2010-07-20 13:29:35 -07:00
splat-ctl.h Add linux compatibility tests 2011-06-21 14:02:46 -07:00
strings.h Public Release Prep 2010-05-17 15:18:00 -07:00
unistd.h Public Release Prep 2010-05-17 15:18:00 -07:00