aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tools/perf/scripts/python/export-to-postgresql.py
diff options
context:
space:
mode:
authorNick Terrell <terrelln@fb.com>2017-06-29 10:57:26 -0700
committerDavid Sterba <dsterba@suse.com>2017-08-16 16:12:02 +0200
commit26b28dce50091ae36ebb0bf9cb814a43861f0641 (patch)
tree7e3d483c39292a2fb117b078d30d02a3b0675a0e /tools/perf/scripts/python/export-to-postgresql.py
parentbtrfs: drop newlines from strings when using btrfs_* helpers (diff)
downloadwireguard-linux-26b28dce50091ae36ebb0bf9cb814a43861f0641.tar.xz
wireguard-linux-26b28dce50091ae36ebb0bf9cb814a43861f0641.zip
btrfs: Keep one more workspace around
find_workspace() allocates up to num_online_cpus() + 1 workspaces. free_workspace() will only keep num_online_cpus() workspaces. When (de)compressing we will allocate num_online_cpus() + 1 workspaces, then free one, and repeat. Instead, we can just keep num_online_cpus() + 1 workspaces around, and never have to allocate/free another workspace in the common case. I tested on a Ubuntu 14.04 VM with 2 cores and 4 GiB of RAM. I mounted a BtrFS partition with -o compress-force={lzo,zlib,zstd} and logged whenever a workspace was allocated of freed. Then I copied vmlinux (527 MB) to the partition. Before the patch, during the copy it would allocate and free 5-6 workspaces. After, it only allocated the initial 3. This held true for lzo, zlib, and zstd. The time it took to execute cp vmlinux /mnt/btrfs && sync dropped from 1.70s to 1.44s with lzo compression, and from 2.04s to 1.80s for zstd compression. Signed-off-by: Nick Terrell <terrelln@fb.com> Reviewed-by: Omar Sandoval <osandov@fb.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions