I've been running Windows as a virtual machine with VGA passthrough for the past 6 years, always with top notch Windows performance. Recently around April or May I noticed a sluggishness in Lightroom (Windows). Running Passmark 8 I discovered a sharp drop in 2D graphics performance. All other results are in line with previous results.
The above graphs are as follows:
Red graph - old benchmark from July 2017 running Windows 10 (1703) as a VM with 10 threads (5 core a 2 threads). At that time everything was fine.
Blue graph - recent benchmark of Windows 10 (1803) installed directly on the hardware (no VM). As you can see, it doesn't suffer from a performance drop in the 2D benchmark!
Yellow graph - new Windows 10 (1803) VM created using virtlib / virt-manager. This represents the best result I got after manually tuning the xml config file.
Green graph - Windows 10 (1803) VM restored from backup onto a new SSD. This is my current system.
Here the 2D graphics benchmark details:
Using kvm with pci/vga passthrough, I have always gotten about the same performance results as if I was running Windows directly on the hardware. But now this doesn't work anymore.
Since I use Windows solely for photo processing, 2D performance actually matters to me quite a lot.
Here the hardware:
i7 3930k overclocked to 4.2 GHz
24GB RAM, thereof 16GB for the Windows VM using hugepages
Nvidia GTX 970 GPU passed to the Windows VM (VGA passthrough)
Samsung 850 EVO 250GB used for the first test (red graph)
Samsung 860 EVO 1TB used for all other benchmarks
Software:
Red benchmark: Linux Mint 18.3, qemu 2.5, Windows VM: Windows 10 Pro 1703
All other benchmarks: Linux Mint 19, qemu 2.11, Windows VM: Windows 10 Pro 1803
Yellow benchmark: libvirt 4.0.0, virt-manager 1.5.1, the rest same as above
On the Linux host I issued the following command to make Passmark happy:
I really like to solve this issue. Unfortunately there are many variables here. The following happened around the time of the 2D performance drop:
1. I upgraded (installed) Linux Mint to 19 (Ubuntu 18.04) and thus also upgraded the kvm hypervisor / qemu.
2. Windows 10 upgraded to version 1803.
3. I updated the Nvidia drivers.
4. Removed 2 faulty DRAMs - have got now just 24GB RAM.
So far I've tried the following find the culprit:
1. Downgraded the Nvidia driver, back to an old version from last year - doesn't make a difference.
2. Checked and readjusted hugepages - nope.
3. Tried various hypervisor configuration options.
4. Adjusted the power options to performance.
5. Edited registry to enable MSI (message signaled interrupts) for my GTX970 graphics card and some PCI devices I pass through.
6. Updated the vfio drivers (disk, network)
7. Installed the qemufwcfg driver, though I'm not using the feature.
I haven't tried yet removing the Hyper-V enlightenments, nor enabling nested virtualization in the qemu script.
Any ideas on what the source of the problem is? Or where to look for.
The above graphs are as follows:
Red graph - old benchmark from July 2017 running Windows 10 (1703) as a VM with 10 threads (5 core a 2 threads). At that time everything was fine.
Blue graph - recent benchmark of Windows 10 (1803) installed directly on the hardware (no VM). As you can see, it doesn't suffer from a performance drop in the 2D benchmark!
Yellow graph - new Windows 10 (1803) VM created using virtlib / virt-manager. This represents the best result I got after manually tuning the xml config file.
Green graph - Windows 10 (1803) VM restored from backup onto a new SSD. This is my current system.
Here the 2D graphics benchmark details:
Using kvm with pci/vga passthrough, I have always gotten about the same performance results as if I was running Windows directly on the hardware. But now this doesn't work anymore.
Since I use Windows solely for photo processing, 2D performance actually matters to me quite a lot.
Here the hardware:
i7 3930k overclocked to 4.2 GHz
24GB RAM, thereof 16GB for the Windows VM using hugepages
Nvidia GTX 970 GPU passed to the Windows VM (VGA passthrough)
Samsung 850 EVO 250GB used for the first test (red graph)
Samsung 860 EVO 1TB used for all other benchmarks
Software:
Red benchmark: Linux Mint 18.3, qemu 2.5, Windows VM: Windows 10 Pro 1703
All other benchmarks: Linux Mint 19, qemu 2.11, Windows VM: Windows 10 Pro 1803
Yellow benchmark: libvirt 4.0.0, virt-manager 1.5.1, the rest same as above
On the Linux host I issued the following command to make Passmark happy:
Code:
echo "options kvm ignore_msrs=1" >> /etc/modprobe.d/kvm.conf
1. I upgraded (installed) Linux Mint to 19 (Ubuntu 18.04) and thus also upgraded the kvm hypervisor / qemu.
2. Windows 10 upgraded to version 1803.
3. I updated the Nvidia drivers.
4. Removed 2 faulty DRAMs - have got now just 24GB RAM.
So far I've tried the following find the culprit:
1. Downgraded the Nvidia driver, back to an old version from last year - doesn't make a difference.
2. Checked and readjusted hugepages - nope.
3. Tried various hypervisor configuration options.
4. Adjusted the power options to performance.
5. Edited registry to enable MSI (message signaled interrupts) for my GTX970 graphics card and some PCI devices I pass through.
6. Updated the vfio drivers (disk, network)
7. Installed the qemufwcfg driver, though I'm not using the feature.
I haven't tried yet removing the Hyper-V enlightenments, nor enabling nested virtualization in the qemu script.
Any ideas on what the source of the problem is? Or where to look for.
Comment