De-mystifying interrupt balancing: irqbalance

A1 | Wed 23 Jan | 10:40 a.m.–11:25 a.m.


Presented by

  • PJ (Peter) Waskiewicz
    @ptownpj

    Peter Waskiewicz Jr (PJ) is a Senior Linux Kernel Engineer in the Networking Division of Intel’s Communications Group. He has maintained and helped create the igb, ixgbe, i40e, and ice wired Ethernet network drivers, the initial Tx multiqueue support in the Linux kernel network stack, and added Data Center Bridging support to the Linux kernel. He also worked in Intel’s Open Source Technology Center on the x86 kernel tree, enabling advanced features in the Broadwell and Skylake microarchitectures. Prior to returning to Intel, PJ was a Senior Principal Engineer at NetApp in the SolidFire division, where he was the chief Linux kernel and networking architect for the SolidFire scale-out cloud storage platform.

Abstract

irqbalance is a userspace daemon that has been available for a number of years. Its main purpose is to make decisions on how to best balance interrupts within a system. Getting this "right" can be a challenge, since it needs to run on enterprise-level systems all the way to a mobile device. Taking things like NUMA locality, bus hierarchy, shared interrupts, cache locality, all into consideration, irqbalance is often misunderstood with how it works, what it can do, and what it cannot do. As co-maintainer of irqbalance, this talk is intended to pull the curtain back on how this whole framework operates. What pieces of the Linux kernel are involved in balancing interrupts, where policies are enforced, current best-known configurations, and future ideas to try and improve operation, are all things targeted with this talk.