Back to results
US 11,386,079 B2Granted
Replacing preemptible RCU with an augmented SRCU implementation
AssigneeInternational Business Machines Corporation
InventorsPaul E. McKenney, Lawrence Roy
Life of this patent
Estimating the term…
Abstract
An augmented sleepable read-copy update implementation (PREEMPT_SRCU) combines elements of a tree-based sleepable read-copy update environment (Tree-SRCU) with elements of a preemptible read-copy update environment (Preemptible-RCU). The elements of Tree-SRCU may be used to manage PREEMPT_SRCU grace periods and handle PREEMPT_SRCU callbacks. The elements of Preemptible-RCU may be used to drive existing PREEMPT_SRCU grace periods to completion.
Claims12
A computer-implemented method, comprising:
- reducing memory requirements within a computer system, the reducing comprising:
- providing an augmented sleepable read-copy update (PREEMPT_SRCU) subsystem that comprises a PREEMPT_SRCU grace period processing/callback invocation component and a PREEMPT_SRCU subsystem data structure, wherein:
- the PREEMPT_SRCU grace period processing/callback invocation component manages PREEMPT_SRCU grace periods and handles PREEMPT_SRCU callbacks;
- and
- the PREEMPT_SRCU subsystem data structure comprises a hybrid combining tree, the hybrid combining tree including non-leaf-level nodes and leaf-level nodes:
- a set of first nodes storing tree-based sleepable read-copy update (Tree-SRCU) information, the set of first nodes including both non-leaf-level nodes and leaf-level nodes;
- and
- a set of second nodes storing, at least in part, preemptible read-copy update (Preemptible-RCU) information, the set of second nodes including only leaf-level nodes;
- and
- the PREEMPT_SRCU subsystem stores in a memory:
- a set of per-processor Tree-SRCU information comprising PREEMPT_SRCU reader registration/unregistration counters to compute the end of PREEMPT_SRCU grace periods and PREEMPT_SRCU callback lists for managing PREEMPT_SRCU callbacks posted by PREEMPT_SRCU updaters;
- a set of per-processor Preemptible-RCU quiescent state tracking and timing information;
- and
- wherein the per-processor Tree SRCU information and the per-processor Preemptible-RCU information are respectively stored in per-processor data structures as part of the PREEMPT_SRCU subsystem;
- and
- executing, by one or more processors, the augmented sleepable read-copy update (PREEMPT_SRCU) subsystem within a computer system, the executing comprising:
- advancing one or more PREEMPT_SRCU grace periods, the advancing updating references to a new copy of data while previous copies tied to old grace periods are freed when no longer referenced, where the advancing uses the set of first nodes of the hybrid combining tree storing tree-based sleepable read-copy update (Tree-SRCU) information to track processes accessing the managed data;
- and
- handling one or more processes which have locked the data managed by PREEMPT_SRCU grace periods, where the handling responds to delayed PREEMPT_SRCU grace periods by increasing the process priority using the set of second nodes of the hybrid combining tree storing, at least in part, preemptible read-copy update (Preemptible-RCU) information.
16 more elements
A system, comprising:
- a plurality of processors;
- a computer readable storage medium;
- program instructions stored on the computer readable storage medium for execution by one or more of the processors to perform operations, the operations comprising:
- reducing memory requirements within a computer system, the reducing comprising:
- providing an augmented sleepable read-copy update (PREEMPT_SRCU) subsystem that comprises a PREEMPT_SRCU grace period processing/callback invocation component and a PREEMPT_SRCU subsystem data structure, wherein:
- the PREEMPT_SRCU grace period processing/callback invocation component manages PREEMPT_SRCU grace periods and handles PREEMPT_SRCU callbacks;
- and
- the PREEMPT_SRCU subsystem data structure comprises a hybrid combining tree, the hybrid combining tree including non-leaf-level nodes and leaf-level nodes:
- a set of first nodes storing tree-based sleepable read-copy update (Tree-SRCU) information, the set of first nodes including both non-leaf-level nodes and leaf-level nodes;
- and
- a set of second nodes storing, at least in part, preemptible read-copy update (Preemptible-RCU) information, the set of second nodes including only leaf-level nodes;
- and
- the PREEMPT_SRCU subsystem stores in a memory:
- a set of per-processor Tree-SRCU information comprising PREEMPT_SRCU reader registration/unregistration counters to compute the end of PREEMPT_SRCU grace periods and PREEMPT_SRCU callback lists for managing PREEMPT_SRCU callbacks posted by PREEMPT_SRCU updaters;
- a set of per-processor Preemptible-RCU quiescent state tracking and timing information;
- and
- wherein the per-processor Tree_SRCU information and the per-processor Preemptible-RCU information are respectively stored in per-processor data structures as part of the PREEMPT_SRCU subsystem;
- and
- executing, by one or more processors, the augmented sleepable read-copy update (PREEMPT_SRCU) subsystem within a computer system, the executing comprising:
- advancing one or more PREEMPT_SRCU grace periods, the advancing updating references to a new copy of data while previous copies tied to old grace periods are freed when no longer referenced, where the advancing uses the set of first nodes of the hybrid combining tree storing tree-based sleepable read-copy update (Tree-SRCU) information to track processes accessing the managed data;
- and
- handling one or more processes which have locked the data managed by PREEMPT_SRCU grace periods, where the handling responds to delayed PREEMPT_SRCU grace periods by increasing the process priority using the set of second nodes of the hybrid combining tree storing, at least in part, preemptible read-copy update (Preemptible-RCU) information.
19 more elements
A computer program product, comprising:
- a computer readable storage medium;
- program instructions stored on the computer readable storage medium for execution by a processor to perform operations, the operations comprising:
- reducing memory requirements within a computer system, the reducing comprising:
- providing an augmented sleepable read-copy update (PREEMPT_SRCU) subsystem that comprises a PREEMPT_SRCU grace period processing/callback invocation component and a PREEMPT_SRCU subsystem data structure, wherein:
- the PREEMPT_SRCU grace period processing/callback invocation component manages PREEMPT_SRCU grace periods and handles PREEMPT_SRCU callbacks;
- and
- the PREEMPT_SRCU subsystem data structure comprises a hybrid combining tree, the hybrid combining tree including non-leaf-level nodes and leaf-level nodes:
- a set of first nodes storing tree-based sleepable read-copy update (Tree-SRCU) information, the set of first nodes including both non-leaf-level nodes and leaf-level nodes;
- and
- a set of second nodes storing, at least in part, preemptible read-copy update (Preemptible-RCU) information, the set of second nodes including only leaf-level nodes;
- and
- the PREEMPT_SRCU subsystem stores in a memory:
- a set of per-processor Tree-SRCU information comprising PREEMPT_SRCU reader registration/unregistration counters to compute the end of PREEMPT_SRCU grace periods and PREEMPT_SRCU callback lists for managing PREEMPT_SRCU callbacks posted by PREEMPT_SRCU updaters;
- a set of per-processor Preemptible-RCU quiescent state tracking and timing information;
- and
- wherein the per-processor Tree SRCU information and the per-processor Preemptible-RCU information are respectively stored in per-processor data structures as part of the PREEMPT_SRCU subsystem;
- and
- executing, by one or more processors, the augmented sleepable read-copy update (PREEMPT_SRCU) subsystem within a computer system, the executing comprising:
- advancing one or more PREEMPT_SRCU grace periods, the advancing updating references to a new copy of data while previous copies tied to old grace periods are freed when no longer referenced, where the advancing uses the set of first nodes of the hybrid combining tree storing tree-based sleepable read-copy update (Tree-SRCU) information to track processes accessing the managed data;
- and
- handling one or more processes which have locked the data managed by PREEMPT_SRCU grace periods, where the handling responds to delayed PREEMPT_SRCU grace periods by increasing the process priority using the set of second nodes of the hybrid combining tree storing, at least in part, preemptible read-copy update (Preemptible-RCU) information.
18 more elements
Dependencies are inferred from the claim text.