Skip to content

Commit

Permalink
locking/ww_mutex/Documentation: Update the design document
Browse files Browse the repository at this point in the history
Document the invariants we maintain for the wait list of ww_mutexes.

Signed-off-by: Nicolai Hähnle <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Chris Wilson <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Maarten Lankhorst <[email protected]>
Cc: Paul E. McKenney <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: [email protected]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
  • Loading branch information
nhaehnle authored and Ingo Molnar committed Jan 14, 2017
1 parent 977625a commit 27bd57a
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions Documentation/locking/ww-mutex-design.txt
Original file line number Diff line number Diff line change
Expand Up @@ -309,11 +309,15 @@ Design:
normal mutex locks, which are far more common. As such there is only a small
increase in code size if wait/wound mutexes are not used.

We maintain the following invariants for the wait list:
(1) Waiters with an acquire context are sorted by stamp order; waiters
without an acquire context are interspersed in FIFO order.
(2) Among waiters with contexts, only the first one can have other locks
acquired already (ctx->acquired > 0). Note that this waiter may come
after other waiters without contexts in the list.

In general, not much contention is expected. The locks are typically used to
serialize access to resources for devices. The only way to make wakeups
smarter would be at the cost of adding a field to struct mutex_waiter. This
would add overhead to all cases where normal mutexes are used, and
ww_mutexes are generally less performance sensitive.
serialize access to resources for devices.

Lockdep:
Special care has been taken to warn for as many cases of api abuse
Expand Down

0 comments on commit 27bd57a

Please sign in to comment.