Gen-Z on Linux: Supporting a New System Interconnect in Free Software

C1 | Tue 22 Jan | 4:15 p.m.–4:40 p.m.

Presented by

  • Keith Packard

    Keith Packard has been developing free software since 1986, working on the X Window System, Linux, and rocketry electronics. He is currently a Distinguished Linux Technologist at Hewlett Packard Labs and a consultant on Linux Graphics for Valve Corporation. Keith received a Usenix Lifetime Achievement award in 1999, an O'Reilly Open Source award in 2011 and sits on the foundation board. He has spoken at numerous free software events around the world, including Linux Con, the Plumber's Conference, Linux Conf Australia, FOSDEM, FISL, Guadec, Akademy, OSCON and many others. Keith would appreciate being referred to with he, him and his pronouns.


System interconnects is a term which spans a wide range of wiring techniques within computer systems. The term encompasses everything from memory connections like DDR, processor-to-processor links like UPI or Infinity Fabric, device connection links like USB or PCIe to machine-to-machine connections like Infiniband or Ethernet. Gen-Z is an interconnect which can span this whole range. Gen-Z is being developed by a broad industry consortium as an open standard and has reached version 1.0, making it ready for implementation in hardware and software. Within Linux, system interconnects support requires infrastructure that provides device drivers access to low-level interconnect interface hardware. This infrastructure offers discovery, addressing and communication abstraction so that device drivers need not implement direct support for the low-level interconnect hardware itself. Linux offers as many interconnect abstractions as there are supported interconnects, from packets for networking through blocks for storage and URBs for USB. Gen-Z will also require new abstractions and management methods Gen-Z provides broad capabilities and uses ideas from a broad range of existing hardware. Adding Gen-Z support to Linux will require a similarly broad range of techniques, some adapted from existing subsystems and some purpose-built. This presentation will first describe what Gen-Z is and how it works, describe a freely available Gen-Z emulator and then discuss the current architecture for Linux support of Gen-Z. Finally, the simulator will be used to show the current state of the Linux Gen-Z subsystem development.