mirror_zfs/include/os/linux/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.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
atomic.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
byteorder.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
callb.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
callo.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
cmn_err.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
condvar.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
cred.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
ctype.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
debug.h Microoptimizations for VERIFY() and friends 2021-03-11 17:16:09 -08:00
disp.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
dkio.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
errno.h Move platform dependent errno aliases 2019-10-25 13:40:50 -07:00
fcntl.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
file.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
inttypes.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
isa_defs.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
kmem_cache.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
kmem.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
kstat.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
list.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
Makefile.am Introduce write-mostly sums 2021-06-09 13:05:34 -07:00
mod_os.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
mutex.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
param.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
proc.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
processor.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
procfs_list.h FreeBSD: Add support for procfs_list 2020-09-23 16:43:51 -07:00
random.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
rwlock.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
shrinker.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
sid.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
signal.h Add SIGSTOP and SIGTSTP handling to issig 2021-04-19 15:12:33 -07:00
simd.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
stat.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
strings.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -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 Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
taskq.h Implement memory and CPU hotplug 2020-12-10 14:09:23 -08:00
thread.h Add SIGSTOP and SIGTSTP handling to issig 2021-04-19 15:12:33 -07:00
time.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
timer.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
trace_spl.h Add tracepoints for taskq entry lifetime events 2019-11-01 13:14:54 -07:00
trace_taskq.h Add tracepoints for taskq entry lifetime events 2019-11-01 13:14:54 -07:00
trace.h Add prototypes 2020-06-18 12:21:32 -07:00
tsd.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
types32.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
types.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
uio.h Cleaning up uio headers 2021-02-20 20:16:50 -08:00
user.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
vfs.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
vmem.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
vmsystm.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
vnode.h Consolidate zfs_holey and zfs_access 2020-10-31 09:40:08 -07:00
wait.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
wmsum.h Introduce write-mostly sums 2021-06-09 13:05:34 -07:00
zmod.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
zone.h Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00