Scalable RCU callback offloading
First Claim
1. A method for scaling Read-Copy Update (RCU) callback offloading, comprising:
- designating a set of CPUs in a computer system as no-callbacks (No-CBs) CPUs that do not perform RCU callback processing;
spawning a set of RCU callback offload kernel threads (rcuo kthreads) that are each assigned to one of said No-CBs CPUs to invoke RCU callbacks generated by workloads running on said No-CBs CPUs at CPUs that are not No-CBs CPUs;
establishing groups of said rcuo kthreads, each rcuo kthread group having one leader rcuo kthread and one or more follower rcuo kthreads;
periodically waking up said leader rcuo kthreads without waking up said follower rcuo kthreads when an RCU grace period ends and an RCU callback needs to be invoked, or when a new RCU callback arrives and a new RCU grace period needs to be started; and
said leader rcuo kthreads periodically waking up their associated follower rcuo kthreads for which said leader rcuo kthreads have sole responsibility to wake.
1 Assignment
0 Petitions
Accused Products
Abstract
In order to scale Read-Copy Update (RCU) callback offloading from no-callbacks (No-CBs) CPUs, a set of RCU callback offload kernel threads (rcuo kthreads) may be spawned and each may be assigned to one of the No-CBs CPUs to invoke RCU callbacks generated by workloads running on the No-CBs CPUs at CPUs that are not No-CBs CPUs. Groups of the rcuo kthreads may be established, with each rcuo kthread group having one leader kthread and one or more follower rcuo kthreads. The leader rcuo kthreads may be periodically awakened without waking up the follower kthreads when an RCU grace period ends and an RCU callback needs to be invoked, or when a new RCU callback arrives and a new RCU grace period needs to be started. The leader rcuo kthreads may periodically awaken their associated follower rcuo kthreads for which the leader rcuo kthreads have sole responsibility to wake.
-
Citations
20 Claims
-
1. A method for scaling Read-Copy Update (RCU) callback offloading, comprising:
-
designating a set of CPUs in a computer system as no-callbacks (No-CBs) CPUs that do not perform RCU callback processing; spawning a set of RCU callback offload kernel threads (rcuo kthreads) that are each assigned to one of said No-CBs CPUs to invoke RCU callbacks generated by workloads running on said No-CBs CPUs at CPUs that are not No-CBs CPUs; establishing groups of said rcuo kthreads, each rcuo kthread group having one leader rcuo kthread and one or more follower rcuo kthreads; periodically waking up said leader rcuo kthreads without waking up said follower rcuo kthreads when an RCU grace period ends and an RCU callback needs to be invoked, or when a new RCU callback arrives and a new RCU grace period needs to be started; and said leader rcuo kthreads periodically waking up their associated follower rcuo kthreads for which said leader rcuo kthreads have sole responsibility to wake. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system, comprising:
-
a plurality of CPUs; a memory coupled to said CPUs, said memory including a computer readable storage medium tangibly embodying at least one program of instructions executable by said CPUs to perform operations for scaling Read-Copy Update (RCU) callback offloading, said operations comprising; designating a set of said CPUs in said system as no-callbacks (No-CBs) CPUs that do not perform RCU callback processing; spawning a set of RCU callback offload kernel threads (rcuo kthreads) that are each assigned to one of said No-CBs CPUs to invoke RCU callbacks generated by workloads running on said No-CBs CPUs at CPUs that are not No-CBs CPUs; establishing groups of said rcuo kthreads, each rcuo kthread group having one leader rcuo kthread and one or more follower rcuo kthreads; periodically waking up said leader rcuo kthreads without waking up said follower rcuo kthreads when an RCU grace period ends and an RCU callback needs to be invoked, or when a new RCU callback arrives and a new RCU grace period needs to be started; and said leader rcuo kthreads periodically waking up their associated follower rcuo kthreads for which said leader rcuo kthreads have sole responsibility to wake. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product, comprising:
-
one or more computer readable data storage media; program instructions stored on said one or more computer readable data storage media for programming a data processing platform having a plurality of CPUs to perform operations for scaling Read-Copy Update (RCU) callback offloading, said operations comprising; designating a set of said CPUs on said data processing platform as no-callbacks (No-CBs) CPUs that do not perform RCU callback processing; spawning a set of RCU callback offload kernel threads (rcuo kthreads) that are each assigned to one of said No-CBs CPUs to invoke RCU callbacks generated by workloads running on said No-CBs CPUs at CPUs that are not No-CBs CPUs; establishing groups of said rcuo kthreads, each rcuo kthread group having one leader rcuo kthread and one or more follower rcuo kthreads; periodically waking up said leader rcuo kthreads without waking up said follower rcuo kthreads when an RCU grace period ends and an RCU callback needs to be invoked, or when a new RCU callback arrives and a new RCU grace period needs to be started; and said leader rcuo kthreads periodically waking up their associated follower rcuo kthreads for which said leader rcuo kthreads have sole responsibility to wake. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification