History

srcu: Document polling interfaces for Tree SRCU grace periods

This commit adds requirements documentation for the get_state_synchronize_srcu(), start_poll_synchronize_srcu(), and poll_state_synchronize_srcu() functions.

Paul E. McKenney committed 5 years ago

Commit ee7f4a81 parent 5358c9f1 file · +18 −0Browse files

Unified · Split

Documentation/RCU/Design/Requirements/Requirements.rst+18−0
@@ -2600,6 +2600,24 @@ also includes ``DEFINE_SRCU()``, ``DEFINE_STATIC_SRCU()``, and · 2599 unmodified lines
26002600 ``init_srcu_struct()`` APIs for defining and initializing
26012601 ``srcu_struct`` structures.
26022602
2603+More recently, the SRCU API has added polling interfaces:
2604+
2605+#. start_poll_synchronize_srcu() returns a cookie identifying
2606+ the completion of a future SRCU grace period and ensures
2607+ that this grace period will be started.
2608+#. poll_state_synchronize_srcu() returns ``true`` iff the
2609+ specified cookie corresponds to an already-completed
2610+ SRCU grace period.
2611+#. get_state_synchronize_srcu() returns a cookie just like
2612+ start_poll_synchronize_srcu() does, but differs in that
2613+ it does nothing to ensure that any future SRCU grace period
2614+ will be started.
2615+
2616+These functions are used to avoid unnecessary SRCU grace periods in
2617+certain types of buffer-cache algorithms having multi-stage age-out
2618+mechanisms. The idea is that by the time the block has aged completely
2619+from the cache, an SRCU grace period will be very likely to have elapsed.
2620+
26032621 Tasks RCU
26042622 ~~~~~~~~~
26052623

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t