Go to file
Brian Behlendorf ea3e6ca9e5 kmem_cache hardening and performance improvements
- Added slab work queue task which gradually ages and free's slabs
  from the cache which have not been used recently.
- Optimized slab packing algorithm to ensure each slab contains the
  maximum number of objects without create to large a slab.
- Fix deadlock, we can never call kv_free() under the skc_lock.  We
  now unlink the objects and slabs from the cache itself and attach
  them to a private work list.  The contents of the list are then
  subsequently freed outside the spin lock.
- Move magazine create/destroy operation on to local cpu.
- Further performace optimizations by minimize the usage of the large
  per-cache skc_lock.  This includes the addition of KMC_BIT_REAPING
  bit mask which is used to prevent concurrent reaping, and to defer
  new slab creation when reaping is occuring.
- Add KMC_BIT_DESTROYING bit mask which is set when the cache is being
  destroyed, this is used to catch any task accessing the cache while
  it is being destroyed.
- Add comments to all the functions and additional comments to try
  and make everything as clear as possible.
- Major cleanup and additions to the SPLAT kmem tests to more
  rigerously stress the cache implementation and look for any problems.
  This includes correctness and performance tests.
- Updated portable work queue interfaces
2009-01-30 20:54:49 -08:00
build This should have been part of the previous autoconf commit. 2008-06-02 18:41:30 +00:00
cmd Prefix META_ALIAS with SPL_ 2008-11-26 13:26:05 -08:00
config Ensure -NDEBUG does not get added to spl_config.h and is only set in the build options. This allows other kernel modules to use spl_config to leverage the reset of the config checks without getting confused with the debug options 2009-01-20 11:59:47 -08:00
include kmem_cache hardening and performance improvements 2009-01-30 20:54:49 -08:00
lib Prefix META_ALIAS with SPL_ 2008-11-26 13:26:05 -08:00
module kmem_cache hardening and performance improvements 2009-01-30 20:54:49 -08:00
patches Add the minimal set of kernel patches need to for the SPL. Hopefully 2008-06-02 19:45:04 +00:00
scripts Rename modules to module and update references 2009-01-15 10:44:54 -08:00
AUTHORS Go through and add a header with the proper UCRL number. 2008-05-26 04:38:26 +00:00
autogen.sh * : Add autogen.sh products. 2008-11-24 23:49:18 +00:00
ChangeLog Prep for 0.4.1 tag 2009-01-21 11:46:02 -08:00
configure Ensure -NDEBUG does not get added to spl_config.h and is only set in the build options. This allows other kernel modules to use spl_config to leverage the reset of the config checks without getting confused with the debug options 2009-01-20 11:59:47 -08:00
configure.ac Rename modules to module and update references 2009-01-15 10:44:54 -08:00
COPYING Go through and add a header with the proper UCRL number. 2008-05-26 04:38:26 +00:00
DISCLAIMER Go through and add a header with the proper UCRL number. 2008-05-26 04:38:26 +00:00
INSTALL Trivial commit to remove whitespace 2008-07-09 19:11:29 +00:00
libtool Update debug.h to standardize VERIFY3_IMPL error messages in debug and non-debug mode 2009-01-22 09:41:47 -08:00
Makefile.am Rename modules to module and update references 2009-01-15 10:44:54 -08:00
Makefile.in Rename modules to module and update references 2009-01-15 10:44:54 -08:00
META Prep for 0.4.1 tag 2009-01-21 11:46:02 -08:00
spl_config.h.in Ensure -NDEBUG does not get added to spl_config.h and is only set in the build options. This allows other kernel modules to use spl_config to leverage the reset of the config checks without getting confused with the debug options 2009-01-20 11:59:47 -08:00