zfs/lib
Alexander Motin ea400129c3
More aggsum optimizations
- Avoid atomic_add() when updating as_lower_bound/as_upper_bound.
Previous code was excessively strong on 64bit systems while not
strong enough on 32bit ones.  Instead introduce and use real
atomic_load() and atomic_store() operations, just an assignments
on 64bit machines, but using proper atomics on 32bit ones to avoid
torn reads/writes.

 - Reduce number of buckets on large systems.  Extra buckets not as
much improve add speed, as hurt reads.  Unlike wmsum for aggsum
reads are still important.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored-By: iXsystems, Inc.
Closes #12145
2021-06-07 09:02:47 -07:00
..
libavl cppcheck: integrete cppcheck 2021-01-26 16:12:26 -08:00
libefi libefi: efi_get_devname: don't allocate procfs path 2021-06-03 13:17:49 -07:00
libicp cppcheck: integrete cppcheck 2021-01-26 16:12:26 -08:00
libnvpair Fix error check in nvlist_print_json_string 2021-06-04 13:53:44 -06:00
libshare libzfs: don't distribute libzfs_impl.h 2021-06-03 13:17:35 -07:00
libspl More aggsum optimizations 2021-06-07 09:02:47 -07:00
libtpool cppcheck: integrete cppcheck 2021-01-26 16:12:26 -08:00
libunicode cppcheck: integrete cppcheck 2021-01-26 16:12:26 -08:00
libuutil libspl: staticify buf and pagesize, rename aok to libspl_assert_ok 2021-06-03 11:04:13 -06:00
libzfs libzfs: write_inuse_diffs_one: format strerror() with "%s" 2021-06-04 16:04:37 -07:00
libzfs_core libspl: staticify buf and pagesize, rename aok to libspl_assert_ok 2021-06-03 11:04:13 -06:00
libzfsbootenv libzfsbootenv: lzbe_set_boot_device(): don't free undefined pointer 2021-05-08 09:27:53 -07:00
libzpool lib/: set O_CLOEXEC on all fds 2021-04-11 15:45:59 -07:00
libzstd cppcheck: integrete cppcheck 2021-01-26 16:12:26 -08:00
libzutil Reinstate the old zpool read label logic as a fallback 2021-05-26 22:07:31 -07:00
Makefile.am cppcheck: integrete cppcheck 2021-01-26 16:12:26 -08:00