Setting up the PCIe hotplug in Kernel for flexible setups
It is relatively easy to tune the current Linux kernel via command line arguments to handle hot-added PCI devices if the expected topology is known and limited: just reserve enough address space and bus numbers per a hotplug slot, so new devices can fit there. But if the system demands online, substantial and frequent reshaping of a current topology, the constrained nature of the PCIe applies severe restrictions on that.
In this presentation, we describe how Linux can reallocate resources, even in difficult situations like hotplugging an array full of diverse devices in the middle of an existing PCIe tree, by pausing the affected drivers and instructing them to update the changes.
Sergei is a Software Engineer at YADRO, working on Linux kernel, device drivers and embedded systems. One of his latest projects is improving the PCIe hotplug in upstream Linux so it can work on PowerPC, x86 and potentially any platform almost as easily as USB.