发明名称 Expedited module unloading for kernel modules that execute read-copy update callback processing code
摘要 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.
申请公布号 US9262234(B2) 申请公布日期 2016.02.16
申请号 US201213454717 申请日期 2012.04.24
申请人 International Business Machines Corporation 发明人 McKenney Paul E.
分类号 G06F9/46;G06F7/00;G06F9/52 主分类号 G06F9/46
代理机构 代理人 Duft Walter W.
主权项 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.
地址 Armonk NY US