2021-02-02 19:07:51 |
Guilherme G. Piccoli |
bug |
|
|
added bug |
2021-02-02 19:09:56 |
Guilherme G. Piccoli |
bug task added |
|
linux-kvm (Ubuntu) |
|
2021-02-02 19:10:11 |
Guilherme G. Piccoli |
bug task deleted |
linux (Ubuntu) |
|
|
2021-02-02 19:10:20 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu): status |
New |
In Progress |
|
2021-02-02 19:10:26 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu): importance |
Undecided |
Medium |
|
2021-02-02 19:10:29 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu): assignee |
|
Guilherme G. Piccoli (gpiccoli) |
|
2021-02-02 19:10:37 |
Guilherme G. Piccoli |
nominated for series |
|
Ubuntu Groovy |
|
2021-02-02 19:10:37 |
Guilherme G. Piccoli |
bug task added |
|
linux-kvm (Ubuntu Groovy) |
|
2021-02-02 19:10:37 |
Guilherme G. Piccoli |
nominated for series |
|
Ubuntu Hirsute |
|
2021-02-02 19:10:37 |
Guilherme G. Piccoli |
bug task added |
|
linux-kvm (Ubuntu Hirsute) |
|
2021-02-02 19:10:37 |
Guilherme G. Piccoli |
nominated for series |
|
Ubuntu Bionic |
|
2021-02-02 19:10:37 |
Guilherme G. Piccoli |
bug task added |
|
linux-kvm (Ubuntu Bionic) |
|
2021-02-02 19:10:37 |
Guilherme G. Piccoli |
nominated for series |
|
Ubuntu Xenial |
|
2021-02-02 19:10:37 |
Guilherme G. Piccoli |
bug task added |
|
linux-kvm (Ubuntu Xenial) |
|
2021-02-02 19:10:37 |
Guilherme G. Piccoli |
nominated for series |
|
Ubuntu Focal |
|
2021-02-02 19:10:37 |
Guilherme G. Piccoli |
bug task added |
|
linux-kvm (Ubuntu Focal) |
|
2021-02-02 19:10:50 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu Groovy): status |
New |
In Progress |
|
2021-02-02 19:10:52 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu Focal): status |
New |
In Progress |
|
2021-02-02 19:10:55 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu Bionic): status |
New |
In Progress |
|
2021-02-02 19:10:58 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu Xenial): status |
New |
In Progress |
|
2021-02-02 19:16:56 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu Groovy): importance |
Undecided |
Medium |
|
2021-02-02 19:16:59 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu Focal): importance |
Undecided |
Medium |
|
2021-02-02 19:17:03 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu Bionic): importance |
Undecided |
Medium |
|
2021-02-02 19:17:05 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu Xenial): importance |
Undecided |
Medium |
|
2021-02-02 19:17:22 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu Groovy): assignee |
|
Guilherme G. Piccoli (gpiccoli) |
|
2021-02-02 19:17:24 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu Focal): assignee |
|
Guilherme G. Piccoli (gpiccoli) |
|
2021-02-02 19:17:26 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu Bionic): assignee |
|
Guilherme G. Piccoli (gpiccoli) |
|
2021-02-02 19:17:29 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu Xenial): assignee |
|
Guilherme G. Piccoli (gpiccoli) |
|
2021-02-03 22:38:15 |
Guilherme G. Piccoli |
description |
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. |
|
2021-02-03 22:38:57 |
Guilherme G. Piccoli |
linux-kvm (Ubuntu Xenial): status |
In Progress |
Invalid |
|
2021-02-19 12:29:07 |
William Breathitt Gray |
linux-kvm (Ubuntu Groovy): status |
In Progress |
Fix Committed |
|
2021-02-19 12:29:09 |
William Breathitt Gray |
linux-kvm (Ubuntu Focal): status |
In Progress |
Fix Committed |
|
2021-02-19 12:29:10 |
William Breathitt Gray |
linux-kvm (Ubuntu Bionic): status |
In Progress |
Fix Committed |
|
2021-02-23 16:20:59 |
Launchpad Janitor |
linux-kvm (Ubuntu Focal): status |
Fix Committed |
Fix Released |
|
2021-02-23 16:20:59 |
Launchpad Janitor |
cve linked |
|
2020-16120 |
|
2021-02-23 16:20:59 |
Launchpad Janitor |
cve linked |
|
2020-27777 |
|
2021-02-23 16:20:59 |
Launchpad Janitor |
cve linked |
|
2020-29372 |
|
2021-02-23 16:24:54 |
Launchpad Janitor |
linux-kvm (Ubuntu Groovy): status |
Fix Committed |
Fix Released |
|
2021-02-23 16:24:54 |
Launchpad Janitor |
cve linked |
|
2020-28974 |
|
2021-03-15 10:28:13 |
Launchpad Janitor |
linux-kvm (Ubuntu Bionic): status |
Fix Committed |
Fix Released |
|
2021-03-17 17:16:45 |
Launchpad Janitor |
linux-kvm (Ubuntu Hirsute): status |
In Progress |
Fix Released |
|
2021-03-17 17:16:45 |
Launchpad Janitor |
cve linked |
|
2021-20194 |
|