Go to file
Brian Behlendorf 366346c565 Merge branch 'kmem-cache-optimization'
This branch contains kmem cache optimizations designed to resolve
the lockups reported in zfsonlinux/zfs#922.  The lockups were
largely the result of spin lock contention in the slab under low
memory conditions.  Fundamentally, these changes are all designed
to minimize that contention though a variety of methods.

  * Improved vmem cached deadlock detection
  * Track emergency objects in rbtree
  * Optimize spl_kmem_cache_free()
  * Never spin in kmem_cache_alloc()

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
zfsonlinux/zfs#922
2012-11-08 11:09:17 -08:00
cmd Remove autotools products 2012-08-27 11:46:23 -07:00
config Linux 3.7 compat, __clear_close_on_exec() removed 2012-10-18 13:36:44 -07:00
include Track emergency object in rbtree 2012-11-06 14:54:19 -08:00
lib Remove autotools products 2012-08-27 11:46:23 -07:00
module Never spin in kmem_cache_alloc() 2012-11-06 15:48:39 -08: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-09-11 10:12:47 -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-rc11 2012-09-18 11:28:57 -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-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