]> git.proxmox.com Git - mirror_spl.git/commit - module/spl/spl-proc.c
Further slab improvements, I'm getting close to something which works
authorbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>
Fri, 27 Jun 2008 21:40:11 +0000 (21:40 +0000)
committerbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>
Fri, 27 Jun 2008 21:40:11 +0000 (21:40 +0000)
commitff449ac40691903c7f49cb89b1a02696b6c37aa7
tree54295032a741ab16029364ff120efa5c497194be
parente9d7a2bef56cf159d0f876efc38209a496dd0b66
Further slab improvements, I'm getting close to something which works
well for the expected workloads.  Improvement in this commit include:

- Added DEBUG_KMEM_TRACKING #define which can optionally be set
  when DEBUG_KMEM is defined to do per allocation tracking.  This
  allows us to get all the lightweight kmem debugging enabled by
  default which is pretty light weight, and only when looking
  for a memory leak we can briefly enable the per alloc tracking.

- Added set_normalized_timespec() in to SPL to simply using
  the timespec() primatives from within a module.

- Added per-spinlock cycle counters to the slab in an attempt
  to run down a lock contention issue.  The contended lock
  was in vmalloc() but I'm going to leave the cycle counters
  in place for a little while until I'm convinced there arn't
  other locking improvement possible in the slab.

- Added a proc interface to the slab to export per slab
  cache statistics to /proc/spl/kmem/slab for analysis.

- Reworked spl_slab_alloc() function to allocate from kmem for
  small allocation and vmem for large allocations.  This improved
  things considerably but futher work is needed.

git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@138 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
include/sys/kmem.h
modules/spl/spl-kmem.c
modules/spl/spl-proc.c
modules/spl/spl-time.c
modules/splat/splat-kmem.c