** Description changed: - To be filled - I'm just reserving the LP number for now. + [Impact] + * Currently linux-kvm derivative doesn't have CONFIG_PCI_MSI (and its dependency options) enabled. The goal for such derivative is to be minimal and boot as fast as possible in virtual environments, hence most config options were dropped. + + * Happens that MSI/MSI-X are the de facto drivers' standard with regards + to interrupts, and as such the hot path is optimized for MSIs. Boot + testing with that config enabled showed that we have improvements in + boot time (details in next section). + + * Also, performance-wise MSIs are a good idea too, since it usually + allows multiple queues in network devices and KVM is more optimized to + MSIs in comparison with regular IRQs - tests (detailed in next section) + showed performance improvements in virtio devices with MSIs. + + * Based on that findings, we are hereby enabling MSIs for the linux-kvm + derivatives in all series (Bionic / Focal / Groovy / Hirsute) - notice + that Xenial already has that config option enabled. + + [Test Case] + * All below tests were performed in a x86-64 KVM guest with 2 VCPUs and 2GB of RAM, running in a Focal host. Three runs of each test were performed, and we took the average. + + * Boot time test (measured by dmesg timestamp) showed an improvement of ~21%, the following chart exhibiting the data: https://kernel.ubuntu.com/~gpiccoli/MSI/boot_time.svg + We also timed the full boot until the login prompt is available, we had a decrease from ~1 second. + + * The storage test was performed with the fio tool, using a virtio-blk empty disk. The following arguments were used: + fio --filename /dev/vdc --rw=rw --runtime 600 --loops 100 --ioengine libaio --numjobs 2 --group_reporting + + On average we had a ~4.5% speedup in both reads and writes, the + following chart represents the data: + https://kernel.ubuntu.com/~gpiccoli/MSI/fio_storage.svg + + * From the network perspective, we've used iPerf with the following + arguments: iperf -c <server> -t 300 (server was the host machine). On + average, the performance improvement was ~8%, as per the following + chart: https://kernel.ubuntu.com/~gpiccoli/MSI/iperf_network.svg + + [Where problems could occur] + * Given that the main linux package (generic) and basically all other derivatives already enable this option, and given that MSIs are the standard with regards to interrupts from drivers point-of-view, it's safe to say the risks are minimal, likely smaller than not enabling MSIs (since the hot path is usually more tested/exercised). + + * That said, problems could occur if we have bugs in MSI-related code in + drivers or in PCI MSI core code, then those potential problems that + would already affect all other derivatives begin to affect linux-kvm + with this change.
** Changed in: linux-kvm (Ubuntu Xenial) Status: In Progress => Invalid -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1914283 Title: Enable CONFIG_PCI_MSI in the linux-kvm derivative To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux-kvm/+bug/1914283/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs