zfs/lib/libspl
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
..
include More aggsum optimizations 2021-06-07 09:02:47 -07:00
os libspl: staticify buf and pagesize, rename aok to libspl_assert_ok 2021-06-03 11:04:13 -06:00
Makefile.am libspl: implement atomics in terms of atomics 2021-04-18 22:13:24 -07:00
assert.c libspl: staticify buf and pagesize, rename aok to libspl_assert_ok 2021-06-03 11:04:13 -06:00
atomic.c More aggsum optimizations 2021-06-07 09:02:47 -07:00
getexecname.c libspl: lift common bits of getexecname() 2021-04-15 14:55:40 -07:00
libspl_impl.h libspl: lift common bits of getexecname() 2021-04-15 14:55:40 -07:00
list.c Fixing gang ABD child removal race condition 2020-07-14 11:04:35 -07:00
mkdirp.c Fix typos in lib/ 2019-09-02 17:53:27 -07:00
page.c libspl: staticify buf and pagesize, rename aok to libspl_assert_ok 2021-06-03 11:04:13 -06:00
strlcat.c Check for strlcat and strlcpy 2018-12-11 16:01:41 -08:00
strlcpy.c Check for strlcat and strlcpy 2018-12-11 16:01:41 -08:00
timestamp.c Always use "%lld" for formatting time_ts 2020-05-28 10:29:58 -07:00