tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: New manpage: locking(9)



Great to have this.

I've attached a diff file with some minor wording/grammar changes.

WRT to the table of "applicability", I'm not sure I like having it say

	mutex(9)        yes         depends       depends

Can we maybe specify the dependency?  Perhaps

	mutex(9)        yes         ???           spin-mutex only




On Thu, 18 Jun 2015, Kamil Rytarowski wrote:

I'm attaching a proposition of locking(9).
New version attached.

Changes:
1. I was told that kernel halves are not used in NetBSD.
2. ras(9) is for userland only, remove it from USAGE.

There are additional things to be done in intro(9):
1. Remove reference to dropped lock(9).
2. Include reference to pserialize(9).


-------------------------------------------------------------------------
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:       |
| (Retired)        | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com    |
| Kernel Developer | 0786 F758 55DE 53BA 7731 | pgoyette at netbsd.org  |
-------------------------------------------------------------------------
--- patch-locking.9.orig	2015-06-19 06:40:52.000000000 +0800
+++ patch-locking.9.paul	2015-06-19 06:58:50.000000000 +0800
@@ -49,7 +49,7 @@
 .It
 To control concurrent access to shared resources (critical sections).
 .It
-Spawn tasks from an interrupt in the thread context.
+From an interrupt, spawn tasks with thread context.
 .It
 Mask interrupts from threads.
 .It
@@ -65,20 +65,21 @@
 - here run processes (represented by
 .Dv struct proc )
 and light-weight processes (represented by
-.Dv struc lwp
+.Dv struct lwp
 and known as kernel threads).
-Code in this context can sleep, block resources and posses address-space.
+Code in this context can sleep, block resources and possess address-space.
 .It
 .Em Software interrupt context
-- it's limited thread context.
+- provides a thread context.
 Code in this context must be processed shortly.
-These interrupts don't possess any address space context.
+These interrupts don't possess their own address space context.
 Software interrupts are a way of deferring hardware interrupts to do more
 expensive processing at a lower interrupt priority.
 .It
 .Em Hard interrupt context
-- code must be processed as quickly as possible.
-It's forbidden for a code here to sleep or access long-awaited resources.
+- code must be processed as rapidly as possible.
+It's forbidden for code here to sleep or to wait for resources that
+may be unavailable for extended periods of time.
 .El
 .Pp
 The main differences between processes and kernel threads are:
@@ -86,7 +87,8 @@
 .It
 Single process can own multiple kernel threads (LWPs).
 .It
-Process possesses address space context to map userland address space.
+Process possesses address space context to map userland address space,
+while kernel threads share a single common address space.
 .It
 Processes are designed for userland executables and kernel threads for
 in-kernel tasks.
@@ -98,7 +100,8 @@
 The
 .Nx
 kernel is written to run across multiple unicore and multicore CPUs.
-The following lists lists alphabetically.
+The following list identifies the tools that are used to coordinate and
+control access to shared resources.
 .Ss Atomic memory operations
 The
 .Nm atomic_ops
@@ -162,7 +165,7 @@
 .Xr cpu_switchto 9 .
 If a process is found to have been preempted during a restartable sequence,
 then its execution is rolled-back to the start of the sequence by resetting its
-program counter saved in its process control block (PCB).
+program counter to the value saved in its process control block (PCB).
 .Pp
 See
 .Xr ras 9 .
@@ -272,8 +275,8 @@
 synchronization primitive (lockmgr) was inefficient and slow to execute.
 In
 .Nx 5.0
-there were introduced massive performance improvements on multicore hardware
-by Andrew Doran under a sponsorship of The NetBSD Foundation.
+massive performance improvements on multicore hardware were introduced
+by Andrew Doran under the sponsorship of The NetBSD Foundation.
 .Pp
 This file first appeared in
 .Nx 8.0


Home | Main Index | Thread Index | Old Index