Effective management of blocked-tasks in preemptible read-copy update
First Claim
1. In a computing system having one or more processors operatively coupled to one or more memory devices, a method for managing all read-copy update reader tasks that have been preempted while executing in a read-copy update read-side critical section on some or all of said one or more processors, said method comprising managing a single blocked-tasks list associated with said some or all of said one or more processors to track said preempted read-copy update reader tasks that are blocking an asynchronous grace period, preempted read-copy update reader tasks that are blocking an expedited grace period, and preempted read-copy update reader tasks that require priority boosting, wherein an expedited grace period forces or simulates a context switch on some or all of said one or more processors to preempt all read-copy update reader tasks.
0 Assignments
0 Petitions
Accused Products
Abstract
A technique for managing read-copy update readers that have been preempted while executing in a read-copy update read-side critical section. A single blocked-tasks list is used to track preempted reader tasks that are blocking an asynchronous grace period, preempted reader tasks that are blocking an expedited grace period, and preempted reader tasks that require priority boosting. In example embodiments, a first pointer may be used to segregate the blocked-tasks list into preempted reader tasks that are and are not blocking a current asynchronous grace period. A second pointer may be used to segregate the blocked-tasks list into preempted reader tasks that are and are not blocking an expedited grace period. A third pointer may be used to segregate the blocked-tasks list into preempted reader tasks that do and do not require priority boosting.
-
Citations
11 Claims
- 1. In a computing system having one or more processors operatively coupled to one or more memory devices, a method for managing all read-copy update reader tasks that have been preempted while executing in a read-copy update read-side critical section on some or all of said one or more processors, said method comprising managing a single blocked-tasks list associated with said some or all of said one or more processors to track said preempted read-copy update reader tasks that are blocking an asynchronous grace period, preempted read-copy update reader tasks that are blocking an expedited grace period, and preempted read-copy update reader tasks that require priority boosting, wherein an expedited grace period forces or simulates a context switch on some or all of said one or more processors to preempt all read-copy update reader tasks.
-
8. In a computing system having one or more processors operatively coupled to one or more memory devices, a method for managing read-copy update readers that have been preempted while executing in a read-copy update read-side critical section, comprising:
-
providing an in-memory data structure whose fields include a first data structure field storing a blocked-tasks list header, second, third and fourth data structure fields storing blocked-task list pointers, a fifth data structure field storing a grace period number, a sixth data structure field storing a quiescent state indicator for one or more processors and a seventh data structure field storing a grace period completion number; using said first data structure field to build a single blocked-tasks list that tracks preempted reader tasks that are blocking an asynchronous grace period, preempted reader tasks that are blocking an expedited grace period, and preempted reader tasks that require priority boosting; using said second data structure field to store a first pointer that segregates said blocked-tasks list into preempted reader tasks that are and are not blocking a current asynchronous grace period; using said third data structure field to store a second pointer that segregates said blocked-tasks list into preempted reader tasks that are and are not blocking an expedited grace period; using said fourth data structure field to store a third pointer that segregates said blocked-tasks list into preempted reader tasks that do and do not require priority boosting; using said fifth data structure field to increment said grace period number and start a new grace period; using said sixth data structure field to increment said quiescent state indicator and indicate that a processor quiescent state has been reached that initiates blocked reader task monitoring and an end of said new grace period once all preempted reader tasks on a tail portion of said blocked-tasks list that begins with said first preempted reader have completed read-copy update read-side critical section processing; and using said seventh data structure field to increment said grace period completion number and declare said end of said new grace period. - View Dependent Claims (9, 10, 11)
-
Specification