]> git.proxmox.com Git - mirror_spl-debian.git/commit - module/spl/spl-generic.c
Fix zlib compression
authorBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 25 Feb 2011 21:26:19 +0000 (13:26 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Sat, 26 Feb 2011 00:56:22 +0000 (16:56 -0800)
commit5c1967ebe2ad28f3c3229cba85159ccbd4dfe93a
tree9c5357e1081f988e19027aa114803f07346dd457
parent5a52a782a0a04efee3846e1a8f0bb4796930e0e4
Fix zlib compression

While portions of the code needed to support z_compress_level() and
z_uncompress() where in place.  In reality the current implementation
was non-functional, it just was compilable.

The critical missing component was to setup a workspace for the
compress/uncompress stream structures to use.  A kmem_cache was
added for the workspace area because we require a large chunk
of memory.  This avoids to need to continually alloc/free this
memory and vmap() the pages which is very slow.  Several objects
will reside in the per-cpu kmem_cache making them quick to acquire
and release.  A further optimization would be to adjust the
implementation to additional ensure the memory is local to the cpu.
Currently that may not be the case.
include/spl-debug.h
include/sys/zmod.h
module/spl/Makefile.in
module/spl/spl-debug.c
module/spl/spl-generic.c
module/spl/spl-zlib.c [new file with mode: 0644]