Module Name: src Committed By: pgoyette Date: Wed Aug 23 22:27:55 UTC 2017
Modified Files: src/share/man/man9: locking.9 Log Message: Add locking(9) and psref(9) summaries to locking(9). PR misc/52504 XXX Pull-up to -8 ? To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/share/man/man9/locking.9 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/share/man/man9/locking.9 diff -u src/share/man/man9/locking.9:1.5 src/share/man/man9/locking.9:1.6 --- src/share/man/man9/locking.9:1.5 Sun Apr 16 07:05:24 2017 +++ src/share/man/man9/locking.9 Wed Aug 23 22:27:55 2017 @@ -1,4 +1,4 @@ -.\" $NetBSD: locking.9,v 1.5 2017/04/16 07:05:24 wiz Exp $ +.\" $NetBSD: locking.9,v 1.6 2017/08/23 22:27:55 pgoyette Exp $ .\" .\" Copyright (c) 2015 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -212,6 +212,36 @@ The read operations may happen from soft .Pp See .Xr pserialize 9 . +.Ss Passive reference mechanism +Passive references allow CPUs to cheaply acquire and release passive +references to a resource, which guarantee the resource will not be +destroyed until the reference is released. Acquiring and releasing +passive references requires no interprocessor synchronization, except +when the resource is pending destruction. +.Pp +See +.Xr psref 9 . +.Ss Localcount mechanism +Localcounts are used in the kernel to implement a medium-weight reference +counting mechanism. During normal operations, localcounts do not need +the interprocessor synchronization associated with +.Xr atomic_ops 3 +atomic memory operations, and (unlike +.Xr psref 9 ) +localcount references can be held across sleeps and can migrate between +CPUs. Draining a localcount requires more expensive interprocessor +synchronization than +.Xr atomic_ops 3 +(similar to +.Xr psref 9 ) . +And localcount references require eight bytes of memory per object per-CPU, +significantly more than +.Xr atomic_ops 3 +and almost always more than +.Xr psref 9 . +.Pp +See +.Xr localcount 9 . .Ss Simple do-it-in-thread-context framework The workqueue utility routines are provided to defer work which is needed to be processed in a thread context. @@ -236,6 +266,8 @@ can be used to protect shared resources .It Xr spl 9 Ta yes Ta no Ta no .It Xr splraiseipl 9 Ta yes Ta no Ta no .It Xr pserialize 9 Ta yes Ta yes Ta no +.It Xr psref 9 Ta yes Ta yes Ta no +.It Xr localcount 9 Ta yes Ta yes Ta no .It Xr workqueue 9 Ta yes Ta yes Ta yes .El .Sh SEE ALSO