More Windows Server vs. Linux Benchmark Tests With Spectre/Meltdown Mitigations
Last week I posted an article looking at the Relative Spectre/Meltdown Mitigation Costs On Windows vs. Linux. Today from a different system and using Windows Server 2016 rather than Windows 10 are some fresh benchmarks doing a similar comparison with different hardware and also looking at the Spectre and Meltdown mitigation performance impact again on Ubuntu 18.04 LTS and Clear Linux.
This latest round of tests were done with an Intel Xeon E3-1280 v5 Skylake system with MSI C236A WORKSTATION motherboard (BIOS 2.90, the latest as of testing, released in December) with 16GB of RAM and 256GB Toshiba RD400 NVMe SSD.
While using the latest BIOS, unfortunately MSI has not released an updated BIOS with the latest CPU microcode for dealing with Spectre. As a result, all that Windows Server 2016 offers is kernel VA Shadow support as its approach to mitigating Meltdown. Branch target injection mitigation couldn't be enabled due to the BIOS/microcode. So on that front Windows Server 2016 was tested with/without VA Shadow being enabled while using the latest Windows Server 2016 Essentials Build 14393.
Ubuntu 18.04 LTS in its daily development form was tested out-of-the-box with kernel page table isolation (KPTI) for Meltdown and full generic Retpoline support for Spectre V2 and __user pointer sanitization for Spectre V1. Ubuntu on its stock Linux 4.15 based kernel was tested mitigated, then with KPTI disabled, and finally with KPTI and spectre_v2=off for disabling Retpolines. The tests were also repeated when using a Linux 4.16 Git kernel as of 28 March.
Lastly, similar tests were done when using Intel's Clear Linux distribution on its 4.15-based kernel out-of-the-box, KPTI disabled, and then KPTI and Retpolines disabled.
It was interesting to note having the kernel VA shadow support on Windows Server 2016 had affected the Java performance, but under Linux with Java the KPTI/Retpoline coverage hadn't affected the performance in our Java tests carried out.
VA Shadow had also affected the performance in the CacheBench micro-benchmark. Yet again from this test in the read performance we see much better performance on Windows than Linux.
In the write and r/m/w CacheBench runs, the Linux vs. Windows Server performance was closer but the VA shadow feature on Windows did still lower the performance, unlike with KPTI/Retpolines on Linux.
Similarly with OSBench...
The PyBench Python benchmark also saw its performance impacted by kernel VA shadow on Windows but didn't budge when toggling KPTI/Retpolines on Linux.
More benchmarks coming up in April. See the previous article if you haven't already for a more diverse range of benchmarks
This latest round of tests were done with an Intel Xeon E3-1280 v5 Skylake system with MSI C236A WORKSTATION motherboard (BIOS 2.90, the latest as of testing, released in December) with 16GB of RAM and 256GB Toshiba RD400 NVMe SSD.
While using the latest BIOS, unfortunately MSI has not released an updated BIOS with the latest CPU microcode for dealing with Spectre. As a result, all that Windows Server 2016 offers is kernel VA Shadow support as its approach to mitigating Meltdown. Branch target injection mitigation couldn't be enabled due to the BIOS/microcode. So on that front Windows Server 2016 was tested with/without VA Shadow being enabled while using the latest Windows Server 2016 Essentials Build 14393.
Ubuntu 18.04 LTS in its daily development form was tested out-of-the-box with kernel page table isolation (KPTI) for Meltdown and full generic Retpoline support for Spectre V2 and __user pointer sanitization for Spectre V1. Ubuntu on its stock Linux 4.15 based kernel was tested mitigated, then with KPTI disabled, and finally with KPTI and spectre_v2=off for disabling Retpolines. The tests were also repeated when using a Linux 4.16 Git kernel as of 28 March.
Lastly, similar tests were done when using Intel's Clear Linux distribution on its 4.15-based kernel out-of-the-box, KPTI disabled, and then KPTI and Retpolines disabled.
It was interesting to note having the kernel VA shadow support on Windows Server 2016 had affected the Java performance, but under Linux with Java the KPTI/Retpoline coverage hadn't affected the performance in our Java tests carried out.
VA Shadow had also affected the performance in the CacheBench micro-benchmark. Yet again from this test in the read performance we see much better performance on Windows than Linux.
In the write and r/m/w CacheBench runs, the Linux vs. Windows Server performance was closer but the VA shadow feature on Windows did still lower the performance, unlike with KPTI/Retpolines on Linux.
Similarly with OSBench...
The PyBench Python benchmark also saw its performance impacted by kernel VA shadow on Windows but didn't budge when toggling KPTI/Retpolines on Linux.
More benchmarks coming up in April. See the previous article if you haven't already for a more diverse range of benchmarks
2 Comments