mirror_zfs/lib
Alexander Motin e76373de7b 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-09 13:05:34 -07:00
..
libavl cppcheck: integrete cppcheck 2021-01-26 16:12:26 -08:00
libefi cppcheck: integrete cppcheck 2021-01-26 16:12:26 -08:00
libicp cppcheck: integrete cppcheck 2021-01-26 16:12:26 -08:00
libnvpair Fix error check in nvlist_print_json_string 2021-06-09 13:05:34 -07:00
libshare freebsd/libshare: nfs: make nfs_is_shared() thread-safe 2021-04-19 15:22:58 -07:00
libspl More aggsum optimizations 2021-06-09 13:05:34 -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 lib/: set O_CLOEXEC on all fds 2021-04-14 13:23:07 -07:00
libzfs libzfs: write_inuse_diffs_one: format strerror() with "%s" 2021-06-09 13:05:34 -07:00
libzfs_core libzfs{,_core}: set O_CLOEXEC on persistent (ZFS_DEV and MNTTAB) fds 2021-04-14 13:23:07 -07:00
libzfsbootenv libzfsbootenv: lzbe_set_boot_device(): don't free undefined pointer 2021-05-10 12:21:31 -07:00
libzpool lib/: set O_CLOEXEC on all fds 2021-04-14 13:23:07 -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-27 22:31:57 -07:00
Makefile.am cppcheck: integrete cppcheck 2021-01-26 16:12:26 -08:00