Expedited module unloading for kernel modules that execute read-copy update callback processing code
First Claim
Patent Images
1. A system, comprising:
- one or more processors;
a memory coupled to said one or more processors, said memory including a computer useable medium tangibly embodying at least one program of instructions executable by said processor to perform operations for expediting unloading of an operating system kernel module that executes read-copy update (RCU) callback processing code, said operations comprising;
performing regular periodic grace period detection processing to detect the end of grace periods in which each of said one or more processors has passed through a quiescent state;
wherein said expediting unloading of the operating system kernel module further comprising;
enqueuing an RCU callback to be processed by said kernel module'"'"'s callback processing code following completion of a grace period;
performing an expediting operation that forces early completion of said grace period after it commences or expedites processing of said RCU callback when said grace period completes;
processing said RCU callback;
unloading said kernel module;
wherein said system is one of a uniprocessor system that runs a non-preemptible operating system kernel, a multiprocessor system that runs a non-preemptible operating system kernel, or a multiprocessor that runs a preemptible operating system kernel;
wherein if said system is a uniprocessor system that runs a non-preemptible operating system kernel, said callback processing code runs in a deferred non-process context of said operating system kernel, and said expediting operation comprises invoking said deferred non-process context to force said callback processing code to execute;
wherein if said system is a multiprocessor system that runs a non-preemptible operating system kernel, and said expediting operation comprises forcing each processor to note a new grace period and forcing a quiescent state on each processor, said forcing a quiescent state including implementing a rescheduling operation on each processor, and wherein said expediting operation is repeated until said RCU callback is processed; and
wherein if said system is a multiprocessor system that runs a preemptible operating system kernel, and said expediting operation comprises forcing each processor to note a new grace period and forcing a quiescent state on each processor, said forcing a quiescent state including implementing a priority boost for blocked reader tasks that are preventing completion of said grace period.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique for expediting the unloading of an operating system kernel module that executes read-copy update (RCU) callback processing code in a computing system having one or more processors. According to embodiments of the disclosed technique, an RCU callback is enqueued so that it can be processed by the kernel module'"'"'s callback processing code following completion of a grace period in which each of the one or more processors has passed through a quiescent state. An expediting operation is performed to expedite processing of the RCU callback. The RCU callback is then processed and the kernel module is unloaded.
-
Citations
4 Claims
-
1. A system, comprising:
-
one or more processors; a memory coupled to said one or more processors, said memory including a computer useable medium tangibly embodying at least one program of instructions executable by said processor to perform operations for expediting unloading of an operating system kernel module that executes read-copy update (RCU) callback processing code, said operations comprising; performing regular periodic grace period detection processing to detect the end of grace periods in which each of said one or more processors has passed through a quiescent state; wherein said expediting unloading of the operating system kernel module further comprising; enqueuing an RCU callback to be processed by said kernel module'"'"'s callback processing code following completion of a grace period; performing an expediting operation that forces early completion of said grace period after it commences or expedites processing of said RCU callback when said grace period completes; processing said RCU callback; unloading said kernel module; wherein said system is one of a uniprocessor system that runs a non-preemptible operating system kernel, a multiprocessor system that runs a non-preemptible operating system kernel, or a multiprocessor that runs a preemptible operating system kernel; wherein if said system is a uniprocessor system that runs a non-preemptible operating system kernel, said callback processing code runs in a deferred non-process context of said operating system kernel, and said expediting operation comprises invoking said deferred non-process context to force said callback processing code to execute; wherein if said system is a multiprocessor system that runs a non-preemptible operating system kernel, and said expediting operation comprises forcing each processor to note a new grace period and forcing a quiescent state on each processor, said forcing a quiescent state including implementing a rescheduling operation on each processor, and wherein said expediting operation is repeated until said RCU callback is processed; and wherein if said system is a multiprocessor system that runs a preemptible operating system kernel, and said expediting operation comprises forcing each processor to note a new grace period and forcing a quiescent state on each processor, said forcing a quiescent state including implementing a priority boost for blocked reader tasks that are preventing completion of said grace period. - View Dependent Claims (2)
-
-
3. A computer program product, comprising:
-
one or more non-transitory machine-useable storage media; program instructions provided by said one or more media for programming a data processing platform to perform operations for expediting unloading of an operating system kernel module that executes read-copy update (RCU) callback processing code, said operations comprising; performing regular periodic grace period detection processing to detect the end of grace periods in which each of said one or more processors has passed through a quiescent state; wherein said expediting unloading of the operating system kernel module further comprising; enqueuing an RCU callback to be processed by said kernel module'"'"'s callback processing code following completion of a grace period; performing an expediting operation that forces early completion of said grace period after it commences or expedites processing of said RCU callback when said grace period completes; processing said RCU callback; unloading said kernel module; wherein said data processing platform is one of a uniprocessor system that runs a non-preemptible operating system kernel, a multiprocessor system that runs a non-preemptible operating system kernel, or a multiprocessor that runs a preemptible operating system kernel; wherein if said data processing platform is a uniprocessor system that runs a non-preemptible operating system kernel, said callback processing code runs in a deferred non-process context of said operating system kernel, and said expediting operation comprises invoking said deferred non-process context to force said callback processing code to execute; wherein if said data processing platform is a multiprocessor system that runs a non-preemptible operating system kernel, and said expediting operation comprises forcing each processor to note a new grace period and forcing a quiescent state on each processor, said forcing a quiescent state including implementing a rescheduling operation on each processor, and wherein said expediting operation is repeated until said RCU callback is processed; and wherein if said data processing platform is a multiprocessor system that runs a preemptible operating system kernel, and said expediting operation comprises forcing each processor to note a new grace period and forcing a quiescent state on each processor, said forcing a quiescent state including implementing a priority boost for blocked reader tasks that are preventing completion of said grace period. - View Dependent Claims (4)
-
Specification