zfs/lib/libspl/include
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
..
ia32 Drop unnecessary srcdir paths 2020-06-24 18:20:18 -07:00
os Support running FreeBSD buildworld on Arm-based macOS hosts 2021-03-26 10:45:12 -07:00
rpc Changes to make openzfs build within FreeBSD buildworld 2020-07-31 21:30:31 -07:00
sys Introduce write-mostly sums 2021-05-27 14:27:29 -06:00
util Drop unnecessary srcdir paths 2020-06-24 18:20:18 -07:00
Makefile.am Drop unnecessary srcdir paths 2020-06-24 18:20:18 -07:00
assert.h libspl: staticify buf and pagesize, rename aok to libspl_assert_ok 2021-06-03 11:04:13 -06:00
atomic.h More aggsum optimizations 2021-06-07 09:02:47 -07:00
libdevinfo.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
libgen.h zpool import -d to specify device path 2018-01-26 10:49:46 -08:00
libshare.h Remove dependency on sharetab file and refactor sharing logic 2020-07-13 09:19:18 -07:00
limits.h Fix -Werror,-Wmacro-redefined in limits.h 2020-09-01 16:22:09 -07:00
locale.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
statcommon.h Add linux libspl support 2010-08-31 13:41:59 -07:00
stdio.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
stdlib.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
string.h Check for strlcat and strlcpy 2018-12-11 16:01:41 -08:00
stropts.h Add linux libspl support 2010-08-31 13:41:59 -07:00
thread.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
tzfile.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
ucred.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
umem.h Remove KMC_NOMAGAZINE 2020-08-05 10:28:07 -07:00
unistd.h Retire HAVE_IOCTL_* configure checks 2014-08-28 07:45:54 -07:00
zone.h libspl: Provide platform-specific zone implementations 2020-08-31 19:43:30 -07:00