Read-copy update (RCU) is a synchronization mechanism in the Linux TM kernel that provides significant improvements in multiprocessor scalability by eliminating the writer-delay problem of readers-writer locking. RCU implementations to date, however, have had the side effect of expanding non-preemptible regions of code, thereby degrading real-time response. We present here a variant of RCU that allows preemption of read-side critical sections and thus is better suited for real-time applications. We summarize priority-inversion issues with locking, present an overview of the RCU mechanism, discuss our counter-based adaptation of RCU for real-time use, describe an additional adaptation of RCU that permits general blocking in readside critical sections, and present performance results. We also discuss an approach for replacing the readers-writer synchronization with RCU in existing implementations.
INTRODUCTIONIn this paper we focus on environments in which real-time applications are running on shared-memory multiprocessor systems with the Linux** operating system. Such environments require both realtime response and multiprocessor scalability. Realtime response means that the hardware and the operating system perform within real-time constraints; that is, the response times to certain events are subject to operational deadlines. Multiprocessor scalability means that the system can process growing amounts of work when the level of multiprocessing is proportionally increased. Tech-
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.