zfs/lib/libspl/include
Alexander Motin 85c43508f3 Introduce write-mostly sums
wmsum counters are a reduced version of aggsum counters, optimized for
write-mostly scenarios.  They do not provide optimized read functions,
but instead allow much cheaper add function.  The primary usage is
infrequently read statistic counters, not requiring exact precision.

The Linux implementation is directly mapped into percpu_counter KPI.
The FreeBSD implementation is directly mapped into counter(9) KPI.
In user-space due to lack of better implementation mapped to aggsum.

Unfortunately neither Linux percpu_counter nor FreeBSD counter(9)
provide sufficient functionality to completelly replace aggsum, so
it still remains to be used for several hot counters.

Reviewed-by: Paul Dagnelie <pcd@delphix.com>
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 #12114
2021-06-09 13:05:34 -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-06-09 13:05:34 -07: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 Move libspl_assertf into .c file 2020-07-10 14:25:24 -07:00
atomic.h Fix typos in lib/ 2019-09-02 17:53:27 -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