mirror_zfs/module/splat
Prakash Surya a9a7a01cf5 Add SPLAT test to exercise slab direct reclaim
This test is designed to verify that direct reclaim is functioning as
expected.  We allocate a large number of objects thus creating a large
number of slabs.  We then apply memory pressure and expect that the
direct reclaim path can easily recover those slabs.  The registered
reclaim function will free the objects and the slab shrinker will call
it repeatedly until at least a single slab can be freed.

Note it may not be possible to reclaim every last slab via direct reclaim
without a failure because the shrinker_rwsem may be contended.  For this
reason, quickly reclaiming 3/4 of the slabs is considered a success.

This should all be possible within 10 seconds.  For reference, on a
system with 2G of memory this test takes roughly 0.2 seconds to run.
It may take longer on larger memory systems but should still easily
complete in the alloted 10 seconds.

Signed-off-by: Prakash Surya <surya1@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #107
2012-05-07 11:55:59 -07:00
..
.gitignore sun-misc-gitignore 2010-01-08 09:37:54 -08:00
Makefile.in Add linux compatibility tests 2011-06-21 14:02:46 -07:00
splat-atomic.c Split <sys/debug.h> header 2010-07-20 13:29:35 -07:00
splat-condvar.c Remove condition variable names 2012-04-06 12:06:19 -07:00
splat-cred.c Public Release Prep 2010-05-17 15:18:00 -07:00
splat-ctl.c Add SPL_META_RELEASE to module load/unload messages 2012-03-23 12:11:50 -07:00
splat-generic.c Add __divdi3(), remove __udivdi3() kernel dependency 2010-07-13 16:44:02 -07:00
splat-internal.h Add linux compatibility tests 2011-06-21 14:02:46 -07:00
splat-kmem.c Add SPLAT test to exercise slab direct reclaim 2012-05-07 11:55:59 -07:00
splat-kobj.c Public Release Prep 2010-05-17 15:18:00 -07:00
splat-linux.c Add linux compatibility tests 2011-06-21 14:02:46 -07:00
splat-list.c Public Release Prep 2010-05-17 15:18:00 -07:00
splat-mutex.c Treat mutex->owner as volatile 2010-06-28 16:02:57 -07:00
splat-random.c Public Release Prep 2010-05-17 15:18:00 -07:00
splat-rwlock.c Fix incorrect krw_type_t type 2010-11-09 10:18:01 -08:00
splat-taskq.c Add taskq contention splat test 2012-01-18 10:36:51 -08:00
splat-thread.c Add Thread Specific Data (TSD) Regression Test 2010-12-07 10:02:44 -08:00
splat-time.c Public Release Prep 2010-05-17 15:18:00 -07:00
splat-vnode.c Remove VN_HOLD/VN_RELE/VOP_PUTPAGE 2011-01-12 11:38:05 -08:00
splat-zlib.c Add zlib regression test 2011-02-25 16:56:46 -08:00