主权项 |
1. In a computing system having one or more processors operatively coupled to one or more memory devices, a method for expediting unloading of an operating system kernel module that executes read-copy update (RCU) callback processing code, the method 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;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. |