diff options
author | 2014-07-07 23:38:29 +0900 | |
---|---|---|
committer | 2014-09-17 13:37:33 -0700 | |
commit | 7880991344f73647fa2222b198cf5cfc10805ac2 (patch) | |
tree | 6a4da88ef232059ba8de77f7715dd274b972e825 /tools/perf/scripts/python/export-to-postgresql.py | |
parent | Btrfs: set error return value in btrfs_get_blocks_direct (diff) | |
download | wireguard-linux-7880991344f73647fa2222b198cf5cfc10805ac2.tar.xz wireguard-linux-7880991344f73647fa2222b198cf5cfc10805ac2.zip |
btrfs compression: merge inflate and deflate z_streams
`struct workspace' used for zlib compression contains two zlib
z_stream-s: `def_strm' used in zlib_compress_pages(), and `inf_strm'
used in zlib_decompress/zlib_decompress_biovec(). None of these
functions use `inf_strm' and `def_strm' simultaniously, meaning that
for every compress/decompress operation we need only one z_stream
(out of two available).
`inf_strm' and `def_strm' are different in size of ->workspace. For
inflate stream we vmalloc() zlib_inflate_workspacesize() bytes, for
deflate stream - zlib_deflate_workspacesize() bytes. On my system zlib
returns the following workspace sizes, correspondingly: 42312 and 268104
(+ guard pages).
Keep only one `z_stream' in `struct workspace' and use it for both
compression and decompression. Hence, instead of vmalloc() of two
z_stream->worskpace-s, allocate only one of size:
max(zlib_deflate_workspacesize(), zlib_inflate_workspacesize())
Reviewed-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions