Tornado: maximizing locality and concurrency in a shared memory multiprocessor operating system
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
Concurrency control in a dynamic search structure
ACM Transactions on Database Systems (TODS)
Concurrent manipulation of binary search trees
ACM Transactions on Database Systems (TODS)
Kernel korner: using RCU in the Linux 2.5 kernel
Linux Journal
Linux Journal
Introducing technology into the Linux kernel: a case study
ACM SIGOPS Operating Systems Review - Research and developments in the Linux kernel
I/O resource management through system call scheduling
ACM SIGOPS Operating Systems Review - Research and developments in the Linux kernel
Hi-index | 0.00 |
LinuxTM has long been used for soft realtime applications. More recent work is preparing Linux for more aggressive realtime use, with scheduling latencies in the small number of hundreds of microseconds (that is right, microseconds, not milliseconds). The current Linux 2.6 RCU implementation both helps and hurts. It helps by removing locks, thus reducing latency in general, but hurts by causing large numbers of RCU callbacks to be invoked all at once at the end of the grace period. This batching of callback invocation improves throughput, but unacceptably degrades realtime response for the more discerning realtime applications. This paper describes modifications to RCU that greatly reduce its effect on scheduling latency, without significantly degrading performance for nonrealtime Linux servers. Although these modifications appear to prevent RCU from interfering with realtime scheduling, other Linux kernel components are still problematic. We are therefore working on tools to help identify the remaining problematic components and to definitively determine whether RCU is still an issue. In any case, to the best of our knowledge, this is the first time that anything resembling RCU has been modified to accommodate the needs of realtime applications.