Microsoft Trims Hyper-V Boot Time By Minutes For Big Azure VMs With Linux 5.19
Microsoft landed a change in their Hyper-V PCI Linux driver to not set "PCI_COMMAND_MEMORY" to avoid the lengthy amount of time spent at boot by the host to unmap/map the vBAR from/to the pBAR when the VM is booting and sets that bit. For their powerful accelerators with up to 128GB of RAM, the unmap/map on a 128GB BAR can take 1.8 seconds and that operation is performed eight times with the current Linux/pci-hyperv code during boot time. It amounts to around 14 seconds of additional boot time per GPU/accelerator.
Quite the boot time savings for big GPU-accelerated VM offerings on Azure.
Thus for their largest Azure VMs currently with 14 GPUs/accelerators, the current kernel behavior can induce an additional 176 seconds to the boot time... Linux 5.19 trims off that nearly three minutes from the VM boot time.
In addition to that Hyper-V PCI change to reduce the boot time on GPU-accelerated Azure VMs, there is also security hardening carried out to their PCI and hv_sock drivers, various fixes, removing code for Hyper-V versions that have long been end-of-life, and other fixes. See this pull for the complete list of Microsoft Hyper-V updates for Linux 5.19.