Wine Takes Minor Performance Hit Running Windows Programs On Linux With KPTI
With word this morning that Wine performance may be impacted by the Linux KPTI patches stealing the spotlight this week, I ran some basic benchmarks of Wine in different configurations looking at the performance impact of the kernel page table isolation patches.
To date most of the KPTI performance impact in our several articles this week has been in testing databases and other I/O heavy workloads as well as some other hits when testing VMs. But for general desktop workloads as well as gaming, the performance impact of these security patches has been minimal to non-existent.
Similar to the impact of the VM testing, the Wine performance appears a bit more broadly affected by these kernel patches in the wake of Spectre and Meltdown security concerns. Due to the higher interactivity between Wine and the Linux kernel compared to just a conventional desktop application, the performance does appear to take a hit in the few benchmarks I have carried out today.
For straightforward and reliable testing under Wine, I wanted to go with something that already was rated "platinum" via WineHQ for Wine compatibility as to not hit any other Wine issues. So I ended up going with the proven 3DMark 03, 3DMark 05, and PCMark 04 benchmarks that work well under Wine. CodeWeavers in the past had contributed some other Wine test profiles for the Phoronix Test Suite / OpenBenchmarking.org, but in not having done any extensive Wine benchmarking in years, I went with 3DMark and PCMark as the reliable points to get started for comparison.
These tests were carried out from an Intel Xeon E3-1280 v5 (Skylake) workstation with an AMD Radeon RX 470 Polaris graphics card. The OS stack was Ubuntu 17.10 with the Linux 4.14.0 and 4.15 Git (as of 5 January) kernels, Mesa 17.4-dev via the Padoka PPA, and Wine 3.0-rc4.
The kernel configurations as the focus for this benchmarking was running the Wine benchmarks with Linux 4.14.0 (prior to any of the KPTI patches landing), Linux 4.15 Git as of this morning with the latest KPTI patches, and that same kernel when KPTI was confirmed to be disabled.