Presented by

  • Paul McKenney

    Paul McKenney
    @paulmckrcu
    https://www.rdrop.com/~paulmck

    Paul E. McKenney is a software engineer at Meta Platforms, and has been coding for almost half a century, with more than half of that on multicore hardware. Paul maintains the RCU implementation within the Linux kernel, where the variety of workloads present highly entertaining performance, scalability, real-time response, and energy-efficiency challenges. Paul also is lead maintainer for the Linux-kernel memory model (LKMM), the kernel concurrency sanitizer (KCSAN), and the nolibc library. Paul previously worked for IBM LTC, Sequent Computer Systems, SRI International, himself, and the Oregon State University Computer Center, with his work having migrated from the upper reaches of the application stack to the lower reaches of the Linux kernel.

Abstract

The term "heisenbug" was inspired by the Heisenberg Uncertainty Principle from quantum physics, which states that it is impossible to exactly quantify a given particle’s position and velocity at any given point in time. Any attempt to more accurately measure that particle's position will result in increased uncertainty of its velocity and vice versa. Similarly, attempts to track down the heisenbug causes its symptoms to radically change or even disappear completely [1]. If the field of physics inspired the name of this problem, it is only fair that the field of physics should inspire the solution. Fortunately, particle physics is up to the task: Why not create an anti-heisenbug to annihilate the heisenbug? Or, perhaps more accurately, to annihilate the heisen-ness of the heisenbug? Although producing an anti-heisenbug for a given heisenbug is more an art than a science, this talk will cover ways of doing just that. [1] The term “heisenbug” is a misnomer, as most heisenbugs are fully explained by the observer effect from classical physics. Nevertheless, the name has stuck.