Commit Graph

39 Commits

Author SHA1 Message Date
kib
36b302ff24 Document the locking context for the directly dispatched callouts.
Cross-reference timeout(9).

Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2015-07-05 19:29:24 +00:00
brueffer
3d2f95b7b4 Fix various mdoc issues and some EOL whitespace.
Found with:	mandoc -Tlint
2014-12-21 10:57:42 +00:00
bjk
2009e3adc3 Grammar tweaks for locking.9
Reviewed by:	jhb
Approved by:	hrs (mentor)
2013-06-30 19:33:07 +00:00
joel
fb34da0b96 mdoc: remove EOL whitespace. 2013-06-29 16:05:44 +00:00
jhb
069178c4c3 Make a pass over this page to correct and clarify a few things as well as
some general word-smithing.
- Don't claim that adaptive mutexes have a timeout (they don't).
- Don't treat pool mutexes as a separate primitive in a few places.
- Describe sleepable read-mostly locks as a separate lock type and add
  them to the various tables.
- Don't claim that sx locks are less efficient.  That hasn't been true in
  a few years now.
- Describe lockmanager locks next to sx locks since they are very similar
  in terms of rules, etc., and so that all the lock primitives are
  grouped together before the non-lock primitives.
- Similarly, move the section on Giant after the description of all the
  non-lock primitives to preserve grouping.
- Condition variables work on several types of locks, not just mutexes.
- Add a bit of language to compare/contrast condition variables with
  sleep/wakeup.
- Add a note about why pause(9) is unique.
- Add some language to define bounded vs unbounded sleeps and explain
  why they are treated separately (bounded sleeps only need CPU time
  to make forward progress).
- Don't state that using mtx_sleep() is a bad idea.  It is in fact rather
  necessary.
- Rework the interaction table a bit.  First, it did not include really
  include sleepable rmlocks and it left out lockmgr entirely.  To get
  things to fit, combine similar lock types into the same column / row,
  and explicitly state what "sleep" means.  The notes about recursion
  and lock order were also a bit banal (lock order is always important,
  not just in the few places annotated here), so remove them.  In
  particular, the lock order note would need to be on just about every
  cell.  If we want to document recursion I think a better approach
  would be a separate table summarizing the recursion rules for each
  lock as having too many notes clutters the table.
- Tweak the tables to use less indentation so everything still fits with
  the added columns.
- Correct a few cells in the context mode table.
- Use mdoc markup instead of explicit markup in a few places.

Requested by:	julian
MFC after:	2 weeks
2013-06-28 16:33:45 +00:00
emaste
22c906e7e4 Remove reference to removed !MPSAFE filesystem support 2013-05-22 16:33:28 +00:00
joel
d5b5017793 Remove contractions. 2013-04-11 18:46:41 +00:00
pluknet
ef55aebbf3 Remove a duplicated "thread". 2012-08-30 11:52:26 +00:00
julian
8311d8ae8e Try clean up some of my original text and neaten a table.
MFC after:	1 week
2012-06-27 01:13:37 +00:00
trasz
cb69eb600c Fix lock interaction table for rmlocks - by default they cannot sleep,
just like rwlocks.

MFC after:	1 week
2012-05-29 14:41:16 +00:00
gjb
cae1f5b994 Typo and mdoc(7) style fixes.
PR:		168117
Submitted by:	Nobuyuki Koganemaru (kogane&jp!freebsd!org)
MFC after:	3 days
2012-05-20 16:43:47 +00:00
gjb
8c3a5f5c35 Remove duplicate words in mdoc(7) pages.
PR:		167810
Submitted by:	Bryan Drewery {bryan!shatow%net} (hackers lounge)
Found with:	textproc/igor
MFC after:	3 days
2012-05-12 03:46:43 +00:00
joel
897054d07f Fix typo from last commit.
Noticed by:	brueffer
2012-03-29 20:55:45 +00:00
joel
3a65370d0c Remove unnecessary Xo/Xc.
Reviewed by:	brueffer
2012-03-29 20:23:35 +00:00
eadler
1ef5fe44d3 Remove trailing whitespace per mdoc lint warning
Disussed with:	gavin
No objection from:	doc
Approved by:	joel
MFC after:	3 days
2012-03-29 05:02:12 +00:00
joel
1994f885d3 Remove superfluous paragraph macro. 2012-03-24 13:37:57 +00:00
trasz
c2febddc96 Xref BUS_SETUP_INTR(9) and locking(9). 2010-11-03 18:49:50 +00:00
mlaier
2ef34e9086 rmlock(9) two additions and one change/fix:
- add rm_try_rlock().
 - add RM_SLEEPABLE to use sx(9) as the back-end lock in order to sleep while
   holding the write lock.
 - change rm_noreadtoken to a cpu bitmask to indicate which CPUs need to go
   through the lock/unlock in order to synchronize.  As a side effect, this
   also avoids IPI to CPUs without any readers during rm_wlock.

Discussed with:		ups@, rwatson@ on arch@
Sponsored by:		Isilon Systems, Inc.
2010-09-01 19:50:03 +00:00
trasz
fd3d9f3731 s/ithread/interrupt thread/ 2010-08-24 21:38:44 +00:00
joel
8c3d367011 Fix a bunch of typos and spelling mistakes. 2010-07-31 12:14:28 +00:00
trasz
5bd435ea19 Some rewording and language fixes.
PR:		docs/136918, docs/134074
Submitted by:	Ben Kaduk <kaduk at mit dot edu>, Haven Hash <havenster at gmail dot com>
2010-02-15 17:41:59 +00:00
trasz
7bce9ac88b Remove list of locking primitives, which is kind of redundant, move
information about witness(9) to the section about interactions, and
expand 'contexts' table.
2010-02-13 12:03:03 +00:00
trasz
c3b530a4d9 Start sentences with a new line.
Submitted by:	brueffer
2010-02-10 19:03:48 +00:00
trasz
d7d58009ce Improve description for Giant and mention blocking inside interrupt threads. 2010-02-10 17:02:06 +00:00
trasz
687466eca7 Cosmetic fixes. 2010-01-28 21:14:12 +00:00
trasz
5fbacf2860 Add description of bounded sleep vs unbounded sleep (aka blocking). Move
rules into their own section.
2010-01-28 19:57:24 +00:00
trasz
f0928fee72 Improve descriptions, remove turnstiles (since, from what I understand,
they are only used to implement other synchronization primitives), tweak
formatting.
2010-01-28 17:09:47 +00:00
ups
9c75ede409 Initial checkin for rmlock (read mostly lock) a multi reader single writer
lock optimized for almost exclusive reader access. (see also rmlock.9)

TODO:
    Convert to per cpu variables linkerset as soon as it is available.
    Optimize UP (single processor)  case.
2007-11-08 14:47:55 +00:00
julian
b6abc7d242 Corrections and clarifications
Approved by: re (bmah)
2007-08-09 21:09:56 +00:00
brueffer
fca1690bb5 Remove duplicate xref and add missing commas.
PR:		113891
Submitted by:	pluknet <pluknet@gmail.com>
Approved by:	re (blanket)
2007-06-21 16:39:25 +00:00
delphij
43033372fb Markup fixes. 2007-06-01 03:11:47 +00:00
imp
67962a47d6 Giant is special. How do I love thee? Let me count the ways?
errr, I mean "Enumerate how the giant lock differs from other locks"

Please let me know if I missed any.  Or misrepresented any...

Reviewed by: ssouhlal@
2007-05-31 00:05:59 +00:00
delphij
d9b60cf6fa - Remove an unneeded comma
- Remove a redundant .Xc
 - Spell "Largely" as it should.
2007-03-19 07:49:11 +00:00
julian
f0adcfa59c More corrections, this time from Wojciech Koszek 2007-03-18 19:28:44 +00:00
julian
218f75032c Spelling and whitespace fixes from Dunne Whitty 2007-03-18 18:57:38 +00:00
julian
20a6b768be fix braino in markup. 2007-03-14 17:33:16 +00:00
julian
0f2fe5a5dd More suggestions from pjd. 2007-03-14 06:27:02 +00:00
julian
3abc629530 Some comments from pjd 2007-03-14 06:12:36 +00:00
julian
06c2afc13a Add locking.9
This is supposed to be a brief overview of the locking primatives.
It is not yet complete and contains many place-holders for information
I do not know.

The locking is getting so diverse that I've lost track of it all.
We need this page to keep outselves in sync with what the primitives do.

note.. not part of the build yet.
2007-03-14 04:00:24 +00:00