mirror_zfs/include/os/freebsd/spl/sys
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
..
acl_impl.h Remove pragma ident lines 2020-08-26 10:35:50 -07:00
acl.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
atomic.h FreeBSD: make adjustments for the standalone environment 2020-10-13 21:05:49 -07:00
byteorder.h FreeBSD: make adjustments for the standalone environment 2020-10-13 21:05:49 -07:00
callb.h Fix typos 2020-06-09 21:24:09 -07:00
ccompat.h FreeBSD: Add support for lockless lookup 2020-08-05 10:19:51 -07:00
ccompile.h FreeBSD: fix HEAD build, conditionally remove FDSYNC defines 2021-01-23 15:39:55 -08:00
cmn_err.h FreeBSD: make adjustments for the standalone environment 2020-10-13 21:05:49 -07:00
condvar.h FreeBSD: make adjustments for the standalone environment 2020-10-13 21:05:49 -07:00
cred.h FreeBSD: Define crgetzoneid appropriately 2020-08-31 19:42:26 -07:00
ctype.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
debug.h Microoptimizations for VERIFY() and friends 2021-03-11 17:16:09 -08:00
dirent.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
disp.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
dkio.h Remove unnecessary references to slavery 2020-06-10 17:07:59 -07:00
extdirent.h Remove pragma ident lines 2020-08-26 10:35:50 -07:00
fcntl.h FreeBSD: fix HEAD build, conditionally remove FDSYNC defines 2021-01-23 15:39:55 -08:00
file.h Rename refcount.h to zfs_refcount.h 2020-07-29 16:35:33 -07:00
freebsd_rwlock.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
idmap.h FreeBSD: Fix UNIX permissions checking 2020-08-18 09:57:07 -07:00
inttypes.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
isa_defs.h Prefix zfs internal endian checks with _ZFS 2020-07-28 13:02:49 -07:00
kidmap.h FreeBSD: Fix UNIX permissions checking 2020-08-18 09:57:07 -07:00
kmem_cache.h FreeBSD: make adjustments for the standalone environment 2020-10-13 21:05:49 -07:00
kmem.h FreeBSD: make adjustments for the standalone environment 2020-10-13 21:05:49 -07:00
kstat.h FreeBSD: make adjustments for the standalone environment 2020-10-13 21:05:49 -07:00
list_impl.h Remove pragma ident lines 2020-08-26 10:35:50 -07:00
list.h Remove pragma ident lines 2020-08-26 10:35:50 -07:00
lock.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
Makefile.am Introduce write-mostly sums 2021-06-09 13:05:34 -07:00
misc.h Consolidate zfs_holey and zfs_access 2020-10-31 09:40:08 -07:00
mod_os.h FreeBSD: Implement sysctl for fletcher4 impl 2020-12-11 10:29:01 -08:00
mode.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
mount.h freebsd: changes necessary to coexist with dtrace in tree 2020-07-01 09:10:08 -07:00
mutex.h FreeBSD: Don't require zeroing new locks before init 2020-06-13 10:58:10 -07:00
param.h Refactor ccompile.h to not include system headers 2020-07-25 20:09:50 -07:00
policy.h Share zfs_fsync, zfs_read, zfs_write, et al between Linux and FreeBSD 2020-10-21 14:08:06 -07:00
proc.h FreeBSD: make adjustments for the standalone environment 2020-10-13 21:05:49 -07:00
processor.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
procfs_list.h FreeBSD: make adjustments for the standalone environment 2020-10-13 21:05:49 -07:00
random.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
rwlock.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
sdt.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
sid.h FreeBSD: Fix UNIX permissions checking 2020-08-18 09:57:07 -07:00
sig.h FreeBSD: make adjustments for the standalone environment 2020-10-13 21:05:49 -07:00
simd_x86.h FreeBSD: Sort out kernel FPU headers for 12.1-REL 2020-10-02 17:48:45 -07:00
simd.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
spl_condvar.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
string.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
strings.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
sunddi.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
sysmacros.h Introduce CPU_SEQID_UNSTABLE 2020-11-02 11:51:12 -08:00
systeminfo.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
systm.h Refactor ccompile.h to not include system headers 2020-07-25 20:09:50 -07:00
taskq.h FreeBSD: make adjustments for the standalone environment 2020-10-13 21:05:49 -07:00
thread.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
time.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
timer.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
trace_zfs.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
trace.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
types32.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
types.h FreeBSD: minor_t needs to be signed so that -1 is recognized as such 2021-01-07 10:41:27 -08:00
uio.h Cleaning up uio headers 2021-02-20 20:16:50 -08:00
uuid.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
vfs.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
vm.h Use new FreeBSD API to largely eliminate object locking 2020-04-17 09:30:26 -07:00
vmsystm.h Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
vnode_impl.h Fix various typos 2021-04-07 13:27:11 -07:00
vnode.h FreeBSD: Prune some unneeded definitions 2021-05-10 12:09:34 -07:00
wmsum.h Introduce write-mostly sums 2021-06-09 13:05:34 -07:00
zmod.h Remove pragma ident lines 2020-08-26 10:35:50 -07:00
zone.h FreeBSD: Simplify INGLOBALZONE 2020-08-31 19:43:08 -07:00