ACK: [linux-kvm B/F/G/H][PATCH 0/1] Enable CONFIG_PCI_MSI in the linux-kvm derivative

Kleber Souza kleber.souza at canonical.com
Thu Feb 4 13:07:13 UTC 2021


On 03.02.21 23:56, Guilherme G. Piccoli wrote:
> BugLink: https://bugs.launchpad.net/bugs/1914283
> 
> 
> [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.
> 
> 
> Guilherme G. Piccoli (1):
>    UBUNTU: [Config] kvm: enable PCI_MSI
> 

Acked-by: Kleber Sacilotto de Souza <kleber.souza at canonical.com>



More information about the kernel-team mailing list