Paul E. McKenney

Learn More
Synchronization overhead, contention, and deadlock can pose severe challenges to designers and implementers of parallel programs. Therefore, many researchers have proposed update disciplines that solve these problems in restricted but commonly occurring situations. However, these proposals rely either on garbage collectors [7, 8], termination of all(More)
BJÖRN B. BRANDENBURG: Scheduling and Locking in Multiprocessor Real-Time Operating Systems (Under the direction of James H. Anderson) With the widespread adoption of multicore architectures, multiprocessors are now a standard deployment platform for (soft) real-time applications. This dissertation addresses two questions fundamental to the design of(More)
Read-copy update (RCU) is a synchronization technique that often replaces reader-writer locking because RCU's read-side primitives are both wait-free and an order of magnitude faster than uncontended locking. Although RCU updates are relatively heavy weight, the importance of read-side performance is increasing as computing systems become more responsive to(More)
The performance of synchronization instructions on shared memory multiprocessors (SMMP) has declined dramatically compared to the performance of simple instructions. As a result, operating system developers for SMMPs have sought out synchronization algorithms that avoid using these instructions, especially in commonly executed paths. One such algorithm that(More)
Achieving high performance for concurrent applications on modern multiprocessors remains challenging. Many programmers avoid locking to improve performance, while others replace locks with non-blocking synchronization to protect against deadlock, priority inversion, and convoying. In both cases, dynamic data structures that avoid locking require a memory(More)
Fairness queuing has recently been proposed as an e ective way to insulate users of large computer communication datagram networks from congestion caused by the activities of other (possibly ill-behaved) users. Unfortunately, fair queuing as proposed by Shenker et al. [DKS89] requires that each conversationz be mapped into its own queue. While there are(More)
We present algorithms for shrinking and expanding a hash table while allowing concurrent, wait-free, linearly scalable lookups. These resize algorithms allow ReadCopy Update (RCU) hash tables to maintain constanttime performance as the number of entries grows, and reclaim memory as the number of entries decreases, without delaying or disrupting readers. We(More)
So what possessed CPU designers to cause them to inflict memory barriers on poor unsuspecting SMP software designers? In short, because reordering memory references allows much better performance, and so memory barriers are needed to force ordering in things like synchronization primitives whose correct operation depends on ordered memory references.(More)