Go to file
Brian Behlendorf efcd0ca32d Enhance SPLAT kmem:slab_overcommit test
After the emergency slab objects were merged I started observing
timeout failures in the kmem:slab_overcommit test.  These were
due to the ineffecient way the slab_overcommit reclaim function
was implemented.  And due to the additional cost of potentially
allocating ten of thousands of emergency objects and tracking
them on a single list.

This patch addresses the first concern by enhansing the test
case to trace all of the allocations objects as a linked list.
This allows for a cleaner version of the reclaim function to
simply release SPLAT_KMEM_OBJ_RECLAIM objects.

Since this touches some common code all the tests which share
these data structions were also updated.  After making these
changes slab_overcommit is reliably passing.  However, there
is certainly additional cleanup which could be done here.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2012-08-30 15:49:00 -07:00
cmd Remove autotools products 2012-08-27 11:46:23 -07:00
config Revert "Detect kernels that honor gfp flags passed to vmalloc()" 2012-08-27 12:00:55 -07:00
include Switch KM_SLEEP to KM_PUSHPAGE 2012-08-27 12:00:55 -07:00
lib Remove autotools products 2012-08-27 11:46:23 -07:00
module Enhance SPLAT kmem:slab_overcommit test 2012-08-30 15:49:00 -07:00
patches Reimplement rwlocks for Linux lock profiling/analysis. 2009-09-18 16:09:47 -07:00
scripts Remove autotools products 2012-08-27 11:46:23 -07:00
.gitignore Remove autotools products 2012-08-27 11:46:23 -07:00
AUTHORS Public Release Prep 2010-05-17 15:18:00 -07:00
autogen.sh Remove autotools products 2012-08-27 11:46:23 -07:00
ChangeLog Prep for spl-0.5.0 tag 2010-08-13 09:33:50 -07:00
configure.ac Support building a spl-modules-dkms sub package 2012-08-08 13:49:40 -07:00
copy-builtin Add script for builtin module building. 2012-07-26 15:13:09 -07:00
COPYING Public Release Prep 2010-05-17 15:18:00 -07:00
DISCLAIMER Public Release Prep 2010-05-17 15:18:00 -07:00
dkms.conf.in Support building a spl-modules-dkms sub package 2012-08-08 13:49:40 -07:00
dkms.postinst Support building a spl-modules-dkms sub package 2012-08-08 13:49:40 -07:00
INSTALL Public Release Prep 2010-05-17 15:18:00 -07:00
Makefile.am Add copy-builtin to EXTRA_DIST 2012-08-23 09:59:40 -07:00
META SPL 0.6.0-rc10 2012-08-13 16:34:39 -07:00
PKGBUILD-spl-modules.in Add make rule for building Arch Linux packages 2011-12-14 16:44:10 -08:00
PKGBUILD-spl.in Add make rule for building Arch Linux packages 2011-12-14 16:44:10 -08:00
README.markdown Add script for builtin module building. 2012-07-26 15:13:09 -07:00
spl_config.h.in Revert "Detect kernels that honor gfp flags passed to vmalloc()" 2012-08-27 12:00:55 -07:00
spl-modules.spec.in Cleanly remove spl-modules-devel headers 2012-08-13 16:34:32 -07:00
spl.release.in Move spl.release generation to configure step 2012-07-12 12:13:47 -07:00
spl.spec.in Fix rpm dependencies 2012-01-18 11:24:36 -08:00

The Solaris Porting Layer (SPL) is a Linux kernel module which provides many of the Solaris kernel APIs. This shim layer makes it possible to run Solaris kernel code in the Linux kernel with relatively minimal modification. This can be particularly useful when you want to track upstream Solaris development closely and dont want the overhead of maintaining a large patch which converts Solaris primitives to Linux primitives.

To build packages for your distribution:

$ ./configure
$ make pkg

To copy the kernel code inside your kernel source tree for builtin compilation:

$ ./configure --enable-linux-builtin --with-linux=/usr/src/linux-...
$ ./copy-builtin /usr/src/linux-...

Full documentation for building, configuring, and using the SPL can be found at: http://zfsonlinux.org