Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Paul E. McKenney

dblp:12/1073 · DBLP profile ↗
← Back
19ranked-venue papers
8as first author
0since 2021 · last 2020
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 10 · 2 first-authorSoftware engineering, systems software and programming languages · 7 · 3 first-authorComputer networks · 4 · 3 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
7 papers
Concurrent programming · 62% Operating systems · 24% Program verification · 7%
Computer architecture, parallel and distributed computing, and storage systems
3 papers
Parallel and multicore computing · 84% Memory systems · 16%

Topics — the 22 heaviest of 24, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming › synchronization
read-copy-update
0.932020
An HTM-based update-side synchronization for RCU on NUMA systems · EuroSys 2020
Frightening Small Children and Disconcerting Grown-ups: Concurrency in the Linux Kernel · ASPLOS 2018
User-Level Implementations of Read-Copy Update · IEEE Trans. Parallel Distributed Syst. 2012
Concurrent programming
synchronization
0.622020
An HTM-based update-side synchronization for RCU on NUMA systems · EuroSys 2020
User-Level Implementations of Read-Copy Update · IEEE Trans. Parallel Distributed Syst. 2012
Parallel and multicore computing
synchronization
0.522020
An HTM-based update-side synchronization for RCU on NUMA systems · EuroSys 2020
The RCU-Reader Preemption Problem in VMs · USENIX ATC 2017
Operating systems › kernel › kernel design
kernel synchronization
0.522018
Frightening Small Children and Disconcerting Grown-ups: Concurrency in the Linux Kernel · ASPLOS 2018
User-Level Implementations of Read-Copy Update · IEEE Trans. Parallel Distributed Syst. 2012
Concurrent programming
memory models
0.312018
Frightening Small Children and Disconcerting Grown-ups: Concurrency in the Linux Kernel · ASPLOS 2018
Operating systems › resource management › memory management
virtual memory
0.312017
The RCU-Reader Preemption Problem in VMs · USENIX ATC 2017
Software testing
mutation testing
0.212015
How Verified is My Code? Falsification-Driven Verification (T) · ASE 2015
Parallel and multicore computing › transactional memory
hardware transactional memory
0.112020
An HTM-based update-side synchronization for RCU on NUMA systems · EuroSys 2020
Memory systems
non-uniform memory access
0.112020
An HTM-based update-side synchronization for RCU on NUMA systems · EuroSys 2020
Concurrent programming
concurrent data structures
0.112011
Resizable, Scalable, Concurrent Hash Tables via Relativistic Programming · USENIX ATC 2011
Concurrent programming › non-blocking algorithms
wait-free synchronization
0.012012
User-Level Implementations of Read-Copy Update · IEEE Trans. Parallel Distributed Syst. 2012
Parallel and multicore computing
concurrent programming
0.012011
Resizable, Scalable, Concurrent Hash Tables via Relativistic Programming · USENIX ATC 2011
Transport protocols and congestion control
TCP
0.011992
Efficient Demultiplexing of Incoming TCP Packets · SIGCOMM 1992
Internet architecture and protocols › packet scheduling
fair queueing
0.011990
Stochastic Fairness Queueing · INFOCOM 1990
Physical-layer communications › channel coding › error control coding
forward error correction
0.011990
Packet Recovery in High-Speed Networks Using Coding and Buffer Management · INFOCOM 1990
Wireless networking
packet recovery
0.011990
Packet Recovery in High-Speed Networks Using Coding and Buffer Management · INFOCOM 1990
Internet architecture and protocols
packet scheduling
0.011990
Stochastic Fairness Queueing · INFOCOM 1990
Transport protocols and congestion control › transport protocols
reliable data transfer
0.011990
Packet Recovery in High-Speed Networks Using Coding and Buffer Management · INFOCOM 1990
Operating systems
network stack
0.011992
Efficient Demultiplexing of Incoming TCP Packets · SIGCOMM 1992
Wireless networking
medium access control
0.011991
Physical- and Link-Layer Modeling of Packet-Radio Network Performance · IEEE J. Sel. Areas Commun. 1991
Wireless networking
packet radio network
0.011991
Physical- and Link-Layer Modeling of Packet-Radio Network Performance · IEEE J. Sel. Areas Commun. 1991
Internet architecture and protocols
buffer management
0.011990
Packet Recovery in High-Speed Networks Using Coding and Buffer Management · INFOCOM 1990

Methods — techniques the papers use, named apart from their topics

logging · 0.9hardware transactional memory · 0.9fine-grained locking · 0.9herd simulator · 0.3formal verification · 0.3executable formal model · 0.3cat language · 0.3mutation analysis · 0.2model checking · 0.2locking · 0.1relativistic programming · 0.1simulation · 0.0performance analysis · 0.0analytical modeling · 0.0probabilistic analysis · 0.0analytic modeling · 0.0
YearPublicationVenuePosition
2020 An HTM-based update-side synchronization for RCU on NUMA systems
abstract
Read-copy update (RCU) can provide ideal scalability for read-mostly workloads, but some believe that it provides only poor performance for updates. This belief is due to the lack of RCU-centric update synchronization mechanisms. RCU instead works with a range of update-side mechanisms, such as locking. In fact, many developers embrace simplicity by using global locking. Logging, hardware transactional memory, or fine-grained locking can provide better scalability, but each of these approaches has limitations, such as imposing overhead on readers or poor scalability on non-uniform memory access (NUMA) systems, mainly due to their lack of NUMA-aware design principles.
Seongjae Park, Paul E. McKenney, Laurent Dufour, Heon Young Yeom
EuroSys2
2019 A critical RCU safety property is... ease of use!
abstract
Some might argue that read-copy update (RCU) is too low-level to be targeted by hackers, but the advent of Row Hammer [19] demonstrated the naïveté of such views. After all, if black-hat hackers are ready, willing, and able to exploit hardware bugs such as Row Hammer, they are assuredly ready, willing, and able to exploit bugs in RCU. Nor is it any longer the case that RCU's involvement in exploitable Linux-kernel bugs is strictly theoretical. However, this bug involved not RCU's correctness, but rather its ease of use. Nevertheless, it was a real bug that really needed fixing. This paper describes this bug and the road to its eventual fix.
Paul E. McKenney
SYSTOR1
2018 Frightening Small Children and Disconcerting Grown-ups: Concurrency in the Linux Kernel
abstract
Concurrency in the Linux kernel can be a contentious topic. The Linux kernel mailing list features numerous discussions related to consistency models, including those of the more than 30 CPU architectures supported by the kernel and that of the kernel itself. How are Linux programs supposed to behave? Do they behave correctly on exotic hardware? A formal model can help address such questions. Better yet, an executable model allows programmers to experiment with the model to develop their intuition. Thus we offer a model written in the cat language, making it not only formal, but also executable by the herd simulator. We tested our model against hardware and refined it in consultation with maintainers. Finally, we formalised the fundamental law of the Read-Copy-Update synchronisation mechanism, and proved that one of its implementations satisfies this law.
Jade Alglave, Luc Maranget, Paul E. McKenney, Andrea Parri, Alan S. Stern
ASPLOS3
2018 Verification of tree-based hierarchical read-copy update in the Linux kernel
abstract
Read-Copy Update (RCU) is a scalable, high-performance Linux-kernel synchronization mechanism that runs low-overhead readers concurrently with updaters. Production-quality RCU implementations are decidedly non-trivial and their stringent validation is mandatory. This suggests use of formal verification. Previous formal verification efforts for RCU either focus on simple implementations or use modeling languages. In this paper, we construct a model directly from the source code of Tree RCU in the Linux kernel, and use the CBMC program analyzer to verify its safety and liveness properties. To the best of our knowledge, this is the first verification of a significant part of RCU's source code - an important step towards integration of formal verification into the Linux kernel's regression test suite.
Lihao Liang, Paul E. McKenney, Daniel Kroening, Tom Melham
DATE2
2018 How verified (or tested) is my code? Falsification-driven verification and testing
Alex Groce, Iftekhar Ahmed 0001, Carlos Jensen, Paul E. McKenney, Josie Holmes
Autom. Softw. Eng.4
2017 The RCU-Reader Preemption Problem in VMs
Aravinda Prasad, K. Gopinath, Paul E. McKenney
USENIX ATC3
2015 How Verified is My Code? Falsification-Driven Verification (T)
abstract
Formal verification has advanced to the point that developers can verify the correctness of small, critical modules. Unfortunately, despite considerable efforts, determining if a "verification" verifies what the author intends is still difficult. Previous approaches are difficult to understand and often limited in applicability. Developers need verification coverage in terms of the software they are verifying, not model checking diagnostics. We propose a methodology to allow developers to determine (and correct) what it is that they have verified, and tools to support that methodology. Our basic approach is based on a novel variation of mutation analysis and the idea of verification driven by falsification. We use the CBMC model checker to show that this approach is applicable not only to simple data structures and sorting routines, and verification of a routine in Mozilla's JavaScript engine, but to understanding an ongoing effort to verify the Linux kernel Read-Copy-Update (RCU) mechanism.
Alex Groce, Iftekhar Ahmed 0001, Carlos Jensen, Paul E. McKenney
ASE4
2012 User-Level Implementations of Read-Copy Update
abstract
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 changes in their environments. RCU is heavily used in several kernel-level environments. Unfortunately, kernel-level implementations use facilities that are often unavailable to user applications. The few prior user-level RCU implementations either provided inefficient read-side primitives or restricted the application architecture. This paper fills this gap by describing efficient and flexible RCU implementations based on primitives commonly available to user-level applications. Finally, this paper compares these RCU implementations with each other and with standard locking, which enables choosing the best mechanism for a given workload. This work opens the door to widespread user-application use of RCU.
Mathieu Desnoyers, Paul E. McKenney, Alan S. Stern, Michel R. Dagenais, Jonathan Walpole
IEEE Trans. Parallel Distributed Syst.2
2011 Resizable, Scalable, Concurrent Hash Tables via Relativistic Programming
Josh Triplett, Paul E. McKenney, Jonathan Walpole
USENIX ATC2
2007 Why the grass may not be greener on the other side: a comparison of locking vs. transactional memory
abstract
The advent of multi-core and multi-threaded processor architectures highlights the need to address the well-known shortcomings of the ubiquitous lock-based synchronization mechanisms. The emerging transactional-memory synchronization mechanism is viewed as a promising alternative to locking for high-concurrency environments, including operating systems. This paper presents a constructive critique of locking and transactional memory: their strengths, weaknesses, and challenges
Paul E. McKenney, Maged M. Michael, Jonathan Walpole
PLOS@SOSP1
2007 Performance of memory reclamation for lockless synchronization
Thomas E. Hart, Paul E. McKenney, Angela Demke Brown, Jonathan Walpole
J. Parallel Distributed Comput.2
2006 Making lockless synchronization fast: performance implications of memory reclamation
abstract
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 reclamation scheme that reclaims nodes once they are no longer in use. The performance of existing memory reclamation schemes has not been thoroughly evaluated. We conduct the first fair and comprehensive comparison of three recent schemes -quiescent-state-based reclamation, epoch-based reclamation, and hazard-pointer-based reclamation - using a flexible microbenchmark. Our results show that there is no globally optimal scheme. When evaluating lockless synchronization, programmers and algorithm designers should thus carefully consider the data structure, the workload, and the execution environment, each of which can dramatically affect memory reclamation performance
Thomas E. Hart, Paul E. McKenney, Angela Demke Brown
IPDPS2
2001 Experience with an efficient parallel kernel memory allocator
abstract
Abstract There has been great progress from the traditional allocation algorithms designed for small memories to more modern algorithms exemplified by McKusick's and Karels' allocator (McKusick MK, Karels MJ. Design of a general purpose memory allocator for the 4.3BSD UNIX kernel. In USENIX Conference Proceedings, Berkeley, CA, June 1988). Nonetheless, none of these algorithms have been designed to meet the needs of UNIX kernels supporting commercial data‐processing applications in a shared‐memory multiprocessor environment. On a shared‐memory multiprocessor, memory is a global resource. Therefore, allocator performance depends on synchronization primitives and manipulation of shared data as well as on raw CPU speed. Synchronization primitives and access to shared data depend on system bus interactions. The speed of system buses has not kept pace with that of CPUs, as witnessed by the ever‐larger caches found on recent systems. Thus, the performance of synchronization primitives and of memory allocators that use them have not received the full benefit of increased CPU performance. An earlier paper (McKenney PE, Slingwine J. Efficient kernel memory allocation on shared‐memory multiprocessors. In USENIX Conference Proceedings, Berkeley, CA, February 1993), describes an allocator designed to meet this situation. This article reviews the motivation for and design of the allocator and presents the experience gained during the seven years that the allocator has been in production use. Copyright © 2001 John Wiley & Sons, Ltd.
Paul E. McKenney, Jack Slingwine, Phil Krueger
Softw. Pract. Exp.1
1999 Differential Profiling
abstract
Performance can be a critical aspect of software quality; in some systems, poor performance can cause financial loss, physical damage, or even death. In such cases, it is imperative to identify system performance problems before deployment, preferably well before implementation. Unfortunately, the size of most software systems grossly exceeds the capacity of current performance-modelling techniques. Hence, there is a need for techniques to quickly identify the portions of the system that are performance-critical. These portions are often small enough to be modelled directly. This paper describes one such technique, differential profiling. Differential profiling combines two or more conventional profiles of a given program run in different situations or conditions. The technique mathematically combines corresponding buckets of the conventional profiles, then sorts the resulting list by these combined values. Different combining functions are suitable for different situations. This combining of conventional profiles frequently yields much greater insight than could be obtained from either of the conventional profiles. Hence, differential profiling helps to locate difficult-to-find performance bottlenecks, such as those that are distributed widely throughout a large program or system, perhaps by being concealed within macros or inlined functions. This paper also describes how this technique may be used to pinpoint certain types of performance bottlenecks in large programs running on large-scale shared-memory multiprocessors. In this environment, the critical bottleneck might consume only a small fraction of the total CPU time, since typical critical sections can consume at most one CPUs worth of computation. This sort of bottleneck, particularly when widely distributed throughout the program under consideration, is often invisible to traditional profiling techniques. Copyright © 1999 John Wiley & Sons, Ltd.
Paul E. McKenney
Softw. Pract. Exp.1
1992 Efficient Demultiplexing of Incoming TCP Packets
abstract
When a transport protocol segment arrives at a receiving system, the receiving system must determine which application is to receive the protocol segment. This decision is typically made by looking up a protocol control block (PCB) for the segment, based on information in the segment's header. PCB lookup (a form of demultiplexing) is typically one of the more expensive operations in handling inbound protocol segment [Fe190].
Paul E. McKenney, Ken F. Dove
SIGCOMM1
1991 Physical- and Link-Layer Modeling of Packet-Radio Network Performance
abstract
An analytical model of packet-radio network performance which takes into account the properties of realistic link-layer mechanisms such as the unreliable nature of acknowledgements is presented. The methodology and the derivation of the model are discussed. Computer implementation of this model, which shows that failing to account for the nonideal behavior of acknowledgements overstates throughput by a factor of two, that allowing too many transmission attempts causes throughput to suffer, and that throughput is a strong function of the desired packet reliability and neighborhood size, is discussed.>
Paul E. McKenney, Peter E. Bausbacher
IEEE J. Sel. Areas Commun.1
1990 Stochastic Fairness Queueing
abstract
A class of algorithms called stochastic fairness queuing is presented. The algorithms are probabilistic variants of fairness queuing. They do not require an exact mapping and thus are suitable for high-speed software or firmware implementation. The algorithms span a broad range of CPU, memory, and fairness tradeoffs. It is shown that the worst-case execution-speed stochastic fairness queuing is faster than the best-case execution speed of all of the implementations of fair queuing presented. This advantage is larger for protocols with longer addresses, e.g. the ISO protocol suite.>
Paul E. McKenney
INFOCOM1
1990 Packet Recovery in High-Speed Networks Using Coding and Buffer Management
abstract
A technique for fiber-optic networks based on forward-error correction (FEC) that allows the destination to reconstruct missing data packets by using redundant parity packets that the source adds to each block of data packets is presented. Methods for generating several types of parity packets are described, along with decoding techniques and their implementations. Algorithms are presented for packet interleaving and selective rejection of packets from node buffers, both of which disperse missing packets among many blocks, thereby reducing the required coding complexity. Performance evaluation, by both analytic and simulation models, shows that this technique can result in a reduction of up to three orders of magnitude in the packet loss rate.>
Nachum Shacham, Paul E. McKenney
INFOCOM2
1989 High-Speed Event Counting and Classification Using a Dictionary Hash Technique
Paul E. McKenney
ICPP (3)1