Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src Add pserialize(9) manual page.
details: https://anonhg.NetBSD.org/src/rev/d82bc653cfce
branches: trunk
changeset: 767790:d82bc653cfce
user: rmind <rmind%NetBSD.org@localhost>
date: Sat Jul 30 18:19:04 2011 +0000
description:
Add pserialize(9) manual page.
diffstat:
distrib/sets/lists/comp/mi | 5 +-
share/man/man9/Makefile | 9 ++-
share/man/man9/pserialize.9 | 110 ++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 121 insertions(+), 3 deletions(-)
diffs (177 lines):
diff -r 1f2b0bdcffe7 -r d82bc653cfce distrib/sets/lists/comp/mi
--- a/distrib/sets/lists/comp/mi Sat Jul 30 17:01:04 2011 +0000
+++ b/distrib/sets/lists/comp/mi Sat Jul 30 18:19:04 2011 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1649 2011/07/28 22:32:28 joerg Exp $
+# $NetBSD: mi,v 1.1650 2011/07/30 18:19:04 rmind Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
#
@@ -10249,6 +10249,7 @@
./usr/share/man/cat9/propdb_create.0 comp-obsolete obsolete
./usr/share/man/cat9/propdb_destroy.0 comp-obsolete obsolete
./usr/share/man/cat9/properties.0 comp-obsolete obsolete
+./usr/share/man/cat9/pserialize.0 comp-sys-catman .cat
./usr/share/man/cat9/psignal.0 comp-sys-catman .cat
./usr/share/man/cat9/putiobuf.0 comp-sys-catman .cat
./usr/share/man/cat9/putter.0 comp-sys-catman .cat
@@ -16210,6 +16211,7 @@
./usr/share/man/html9/prop_copyin_ioctl.html comp-sys-htmlman html
./usr/share/man/html9/prop_dictionary_copyin_ioctl.html comp-sys-htmlman html
./usr/share/man/html9/prop_dictionary_copyout_ioctl.html comp-sys-htmlman html
+./usr/share/man/html9/pserialize.html comp-sys-htmlman html
./usr/share/man/html9/psignal.html comp-sys-htmlman html
./usr/share/man/html9/putiobuf.html comp-sys-htmlman html
./usr/share/man/html9/putter.html comp-sys-htmlman html
@@ -22355,6 +22357,7 @@
./usr/share/man/man9/propdb_create.9 comp-obsolete obsolete
./usr/share/man/man9/propdb_destroy.9 comp-obsolete obsolete
./usr/share/man/man9/properties.9 comp-obsolete obsolete
+./usr/share/man/man9/pserialize.9 comp-sys-man .man
./usr/share/man/man9/psignal.9 comp-sys-man .man
./usr/share/man/man9/putiobuf.9 comp-sys-man .man
./usr/share/man/man9/putter.9 comp-sys-man .man
diff -r 1f2b0bdcffe7 -r d82bc653cfce share/man/man9/Makefile
--- a/share/man/man9/Makefile Sat Jul 30 17:01:04 2011 +0000
+++ b/share/man/man9/Makefile Sat Jul 30 18:19:04 2011 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.348 2011/06/03 18:43:38 rmind Exp $
+# $NetBSD: Makefile,v 1.349 2011/07/30 18:19:05 rmind Exp $
# Makefile for section 9 (kernel function and variable) manual pages.
@@ -40,7 +40,7 @@
panic.9 pathbuf.9 pci.9 pci_configure_bus.9 pci_intr.9 pckbport.9 \
pcmcia.9 pcq.9 percpu.9 pfil.9 physio.9 pmap.9 pmatch.9 \
pmc.9 pmf.9 pool.9 pool_cache.9 powerhook_establish.9 ppsratecheck.9 \
- preempt.9 proc_find.9 putter.9 \
+ preempt.9 proc_find.9 pserialize.9 putter.9 \
radio.9 ras.9 rasops.9 ratecheck.9 resettodr.9 rnd.9 roundup.9 \
rssadapt.9 rt_timer.9 rwlock.9 RUN_ONCE.9 STACK.9 \
sched_4bsd.9 sched_m2.9 scsipi.9 \
@@ -609,6 +609,11 @@
pool_cache.9 pool_cache_invalidate.9
MLINKS+=powerhook_establish.9 powerhook_disestablish.9
MLINKS+=preempt.9 yield.9
+MLINKS+=pserialize.9 pserialize_create.9 \
+ pserialize.9 pserialize_destroy.9 \
+ pserialize.9 pserialize_read_enter.9 \
+ pserialize.9 pserialize_read_exit.9 \
+ pserialize.9 pserialize_perform.9
MLINKS+=ras.9 ras_lookup.9 \
ras.9 ras_fork.9 \
ras.9 ras_purgeall.9
diff -r 1f2b0bdcffe7 -r d82bc653cfce share/man/man9/pserialize.9
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/man/man9/pserialize.9 Sat Jul 30 18:19:04 2011 +0000
@@ -0,0 +1,110 @@
+.\" $NetBSD: pserialize.9,v 1.1 2011/07/30 18:19:05 rmind Exp $
+.\"
+.\" Copyright (c) 2011 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd July 30, 2011
+.Dt PSERIALIZE 9
+.Os
+.Sh NAME
+.Nm pserialize
+.Nd passive serialization mechanism
+.Sh SYNOPSIS
+.In sys/pserialize.h
+.Ft pserialize_t
+.Fn pserialize_create "void"
+.Ft void
+.Fn pserialize_destroy "pserialize_t psz"
+.Ft int
+.Fn pserialize_read_enter "void"
+.Ft void
+.Fn pserialize_read_exit "int s"
+.Ft void
+.Fn pserialize_perform "pserialize_t psz"
+.\" -----
+.Sh DESCRIPTION
+Passive serialization is a reader / writer synchronisation mechanism
+designed for lock-less read operations.
+The read operations may happen from software interrupt at
+.Dv IPL_SOFTCLOCK .
+.Sh FUNCTIONS
+.Bl -tag -width compact
+.It Fn pserialize_create
+Allocate a new synchronisation object.
+.It Fn pserialize_destroy
+Destroy the synchronisation object.
+No synchronisation activity should happen at this point.
+.It Fn pserialize_read_enter
+Enter the critical path of the reader side.
+Returns an IPL value, which must be passed to
+.Xr pserialize_read_exit 9 .
+Protected code path is not allowed to block.
+.It Fn pserialize_read_exit
+Exit the critical path of the reader side.
+Takes the IPL value returned by
+.Xr pserialize_read_enter 9 .
+.It Fn pserialize_perform
+Perform the passive serialization on the writer side.
+Passing of this function ensures that no readers are in action.
+Writers must be additionally serialized with a separate mechanism,
+e.g.
+.Xr mutex 9 .
+Operation blocks and it may only be performed from thread context.
+.El
+.\" -----
+.Sh EXAMPLES
+Typical code fragment in the writer side:
+.Bd -literal
+ mutex_enter(\*[Am]writer_psz_lock);
+ /*
+ * Perform the updates (e.g. remove data items from a list).
+ */
+ ...
+ pserialize_perform(object-\*[Gt]psz);
+ /*
+ * At this point it is safe to destroy old data items.
+ */
+ mutex_exit(\*[Am]writer_psz_lock);
+.Ed
+.\" -----
+.Sh CODE REFERENCES
+The
+.Nm
+is implemented within the file
+.Pa sys/kern/subr_pserialize.c .
+.Sh SEE ALSO
+.Xr condvar 9 ,
+.Xr membar 9 ,
+.Xr mutex 9 ,
+.Xr rwlock 9
+.Rs
+.%A Hennessy, et al.
+.%T "Passive serialization in a multitasking environment "
+.%I US Patent and Trademark Office
+.%D February 28, 1989
+.%N US Patent 4809168
+.Re
+.Sh HISTORY
+Passive serialization mechanism first appeared in
+.Nx 6.0 .
Home |
Main Index |
Thread Index |
Old Index