Spectre V2 Userspace-Userspace Mitigation Very preliminary Spectre V2 userspace-userspace patch benchmarks. tests for a future article on Phoronix. EPYC 7601: spectre_v2_app2app Lite: Processor: AMD EPYC 7601 32-Core @ 2.20GHz (32 Cores / 64 Threads), Motherboard: TYAN B8026T70AE24HR (V1.02.B10 BIOS), Chipset: AMD Family 17h, Memory: 129024MB, Disk: Samsung SSD 970 EVO 250GB, Graphics: ASPEED ASPEED Family, Monitor: VE228, Network: Broadcom and subsidiaries NetXtreme BCM5720 Gigabit PCIe OS: Ubuntu 18.10, Kernel: 4.19.0-rc2-spec2useruser-phx (x86_64) 20180926, Desktop: GNOME Shell 3.30.0, Display Server: X Server 1.20.1, Display Driver: modesetting 1.20.1, Compiler: GCC 8.2.0, File-System: ext4, Screen Resolution: 1920x1080 EPYC 7601: Linux 4.19 Git: Processor: AMD EPYC 7601 32-Core @ 2.20GHz (32 Cores / 64 Threads), Motherboard: TYAN B8026T70AE24HR (V1.02.B10 BIOS), Chipset: AMD Family 17h, Memory: 129024MB, Disk: Samsung SSD 970 EVO 250GB, Graphics: ASPEED ASPEED Family, Monitor: VE228, Network: Broadcom and subsidiaries NetXtreme BCM5720 Gigabit PCIe OS: Ubuntu 18.10, Kernel: 4.19.0-999-generic (x86_64) 20180925, Desktop: GNOME Shell 3.30.0, Display Server: X Server 1.20.1, Display Driver: modesetting 1.20.1, Compiler: GCC 8.2.0, File-System: ext4, Screen Resolution: 1920x1080 2 x Xeon Gold: Linux 4.19 Git: Processor: 2 x Intel Xeon Gold 6138 @ 3.70GHz (40 Cores / 80 Threads), Motherboard: TYAN S7106 (V1.01 BIOS), Chipset: Intel Sky Lake-E DMI3 Registers, Memory: 96256MB, Disk: Samsung SSD 970 EVO 250GB, Graphics: ASPEED ASPEED Family, Monitor: VE228, Network: Intel I210 Gigabit Connection OS: Ubuntu 18.10, Kernel: 4.19.0-999-generic (x86_64) 20180925, Desktop: GNOME Shell 3.30.0, Display Server: X Server 1.20.1, Display Driver: modesetting 1.20.1, Compiler: GCC 8.2.0, File-System: ext4, Screen Resolution: 1920x1080 2 x Xeon Gold: spectre_v2_app2app Lite: Processor: 2 x Intel Xeon Gold 6138 @ 3.70GHz (40 Cores / 80 Threads), Motherboard: TYAN S7106 (V1.01 BIOS), Chipset: Intel Sky Lake-E DMI3 Registers, Memory: 96256MB, Disk: Samsung SSD 970 EVO 250GB, Graphics: ASPEED ASPEED Family, Monitor: VE228, Network: Intel I210 Gigabit Connection OS: Ubuntu 18.10, Kernel: 4.19.0-rc2-spec2useruser-phx (x86_64) 20180926, Desktop: GNOME Shell 3.30.0, Display Server: X Server 1.20.1, Display Driver: modesetting 1.20.1, Compiler: GCC 8.2.0, File-System: ext4, Screen Resolution: 1920x1080 Xeon E3 v5: spectre_v2_app2app Lite: Processor: Intel Xeon E3-1280 v5 @ 4.00GHz (4 Cores / 8 Threads), Motherboard: MSI Z170A SLI PLUS (MS-7998) v1.0 (2.90 BIOS), Chipset: Intel Xeon E3-1200 v5/E3-1500, Memory: 16384MB, Disk: Samsung SSD 970 EVO 250GB, Graphics: Sapphire AMD Radeon RX 470/480/570/570X/580/580X 4096MB, Audio: Realtek ALC1150, Monitor: VE228, Network: Intel Connection OS: Ubuntu 18.10, Kernel: 4.19.0-rc2-spec2useruser-phx (x86_64) 20180926, Desktop: GNOME Shell 3.30.0, Display Server: X Server 1.20.1, Display Driver: modesetting 1.20.1, Compiler: GCC 8.2.0, File-System: ext4, Screen Resolution: 1920x1080 Xeon E3 v5: Linux 4.19 Git: Processor: Intel Xeon E3-1280 v5 @ 4.00GHz (4 Cores / 8 Threads), Motherboard: MSI Z170A SLI PLUS (MS-7998) v1.0 (2.90 BIOS), Chipset: Intel Xeon E3-1200 v5/E3-1500, Memory: 16384MB, Disk: Samsung SSD 970 EVO 250GB, Graphics: Sapphire AMD Radeon RX 470/480/570/570X/580/580X 4096MB, Audio: Realtek ALC1150, Monitor: VE228, Network: Intel Connection OS: Ubuntu 18.10, Kernel: 4.19.0-999-generic (x86_64) 20180925, Desktop: GNOME Shell 3.30.0, Display Server: X Server 1.20.1, Display Driver: modesetting 1.20.1, Compiler: GCC 8.2.0, File-System: ext4, Screen Resolution: 1920x1080 Java SciMark 2.0 Computational Test: Composite Mflops > Higher Is Better EPYC 7601: spectre_v2_app2app Lite ..... 1988 |========================== EPYC 7601: Linux 4.19 Git .............. 1999 |========================== 2 x Xeon Gold: Linux 4.19 Git .......... 2046 |=========================== 2 x Xeon Gold: spectre_v2_app2app Lite . 2064 |=========================== Xeon E3 v5: spectre_v2_app2app Lite .... 2422 |================================ Xeon E3 v5: Linux 4.19 Git ............. 2436 |================================ LuaJIT 2.0.5 Test: Composite Mflops > Higher Is Better EPYC 7601: spectre_v2_app2app Lite ..... 1130 |========================= EPYC 7601: Linux 4.19 Git .............. 1127 |========================= 2 x Xeon Gold: Linux 4.19 Git .......... 1361 |=============================== 2 x Xeon Gold: spectre_v2_app2app Lite . 1363 |=============================== Xeon E3 v5: spectre_v2_app2app Lite .... 1414 |================================ Xeon E3 v5: Linux 4.19 Git ............. 1423 |================================ Stockfish 9 Total Time Nodes Per Second > Higher Is Better EPYC 7601: spectre_v2_app2app Lite ..... 57714332 |======================= EPYC 7601: Linux 4.19 Git .............. 58295761 |======================= 2 x Xeon Gold: Linux 4.19 Git .......... 70618245 |============================ 2 x Xeon Gold: spectre_v2_app2app Lite . 68514820 |=========================== Xeon E3 v5: spectre_v2_app2app Lite .... 10996474 |==== Xeon E3 v5: Linux 4.19 Git ............. 10932676 |==== ebizzy 0.3 Records/s > Higher Is Better EPYC 7601: spectre_v2_app2app Lite ..... 1128287 |============================ EPYC 7601: Linux 4.19 Git .............. 1170497 |============================= 2 x Xeon Gold: Linux 4.19 Git .......... 984344 |======================== 2 x Xeon Gold: spectre_v2_app2app Lite . 953765 |======================== Xeon E3 v5: spectre_v2_app2app Lite .... 235247 |====== Xeon E3 v5: Linux 4.19 Git ............. 248641 |====== Redis 4.0.8 Test: SADD Requests Per Second > Higher Is Better EPYC 7601: spectre_v2_app2app Lite ..... 1574633 |===================== EPYC 7601: Linux 4.19 Git .............. 1600992 |===================== 2 x Xeon Gold: Linux 4.19 Git .......... 1871188 |========================= 2 x Xeon Gold: spectre_v2_app2app Lite . 1887801 |========================= Xeon E3 v5: spectre_v2_app2app Lite .... 2152132 |============================= Xeon E3 v5: Linux 4.19 Git ............. 2172409 |============================= Redis 4.0.8 Test: GET Requests Per Second > Higher Is Better EPYC 7601: spectre_v2_app2app Lite ..... 1722306 |================== EPYC 7601: Linux 4.19 Git .............. 1700905 |================== 2 x Xeon Gold: Linux 4.19 Git .......... 2293584 |======================== 2 x Xeon Gold: spectre_v2_app2app Lite . 2110432 |====================== Xeon E3 v5: spectre_v2_app2app Lite .... 2737734 |============================= Xeon E3 v5: Linux 4.19 Git ............. 2486014 |========================== Redis 4.0.8 Test: SET Requests Per Second > Higher Is Better EPYC 7601: spectre_v2_app2app Lite ..... 1324733 |==================== EPYC 7601: Linux 4.19 Git .............. 1347221 |==================== 2 x Xeon Gold: Linux 4.19 Git .......... 1674181 |========================= 2 x Xeon Gold: spectre_v2_app2app Lite . 1666841 |========================= Xeon E3 v5: spectre_v2_app2app Lite .... 1937071 |============================= Xeon E3 v5: Linux 4.19 Git ............. 1878075 |============================ NGINX Benchmark 1.9.9 Static Web Page Serving Requests Per Second > Higher Is Better EPYC 7601: spectre_v2_app2app Lite ..... 23602 |==================== EPYC 7601: Linux 4.19 Git .............. 23617 |==================== 2 x Xeon Gold: Linux 4.19 Git .......... 29773 |========================= 2 x Xeon Gold: spectre_v2_app2app Lite . 30121 |========================= Xeon E3 v5: spectre_v2_app2app Lite .... 37015 |=============================== Xeon E3 v5: Linux 4.19 Git ............. 37372 |=============================== PHPBench 0.8.1 PHP Benchmark Suite Score > Higher Is Better EPYC 7601: spectre_v2_app2app Lite ..... 397883 |=================== EPYC 7601: Linux 4.19 Git .............. 397506 |=================== 2 x Xeon Gold: Linux 4.19 Git .......... 592819 |============================ 2 x Xeon Gold: spectre_v2_app2app Lite . 590113 |============================ Xeon E3 v5: spectre_v2_app2app Lite .... 640994 |============================== Xeon E3 v5: Linux 4.19 Git ............. 638446 |============================== PostgreSQL pgbench 10.3 Scaling: Buffer Test - Test: Normal Load - Mode: Read Only TPS > Higher Is Better EPYC 7601: spectre_v2_app2app Lite ..... 399342 |===================== EPYC 7601: Linux 4.19 Git .............. 398838 |===================== 2 x Xeon Gold: Linux 4.19 Git .......... 575285 |============================== 2 x Xeon Gold: spectre_v2_app2app Lite . 581375 |============================== Xeon E3 v5: spectre_v2_app2app Lite .... 114306 |====== Xeon E3 v5: Linux 4.19 Git ............. 114333 |====== PostgreSQL pgbench 10.3 Scaling: Buffer Test - Test: Normal Load - Mode: Read Write TPS > Higher Is Better EPYC 7601: spectre_v2_app2app Lite ..... 5872 |================================ EPYC 7601: Linux 4.19 Git .............. 5814 |================================ 2 x Xeon Gold: Linux 4.19 Git .......... 5504 |============================== 2 x Xeon Gold: spectre_v2_app2app Lite . 5433 |============================== Xeon E3 v5: spectre_v2_app2app Lite .... 4655 |========================= Xeon E3 v5: Linux 4.19 Git ............. 4613 |========================= Apache Siege 2.4.29 Concurrent Users: 100 Transactions Per Second > Higher Is Better EPYC 7601: spectre_v2_app2app Lite ..... 23041 |================= EPYC 7601: Linux 4.19 Git .............. 23529 |================= 2 x Xeon Gold: Linux 4.19 Git .......... 29949 |====================== 2 x Xeon Gold: spectre_v2_app2app Lite . 29197 |===================== Xeon E3 v5: spectre_v2_app2app Lite .... 43178 |=============================== Xeon E3 v5: Linux 4.19 Git ............. 35829 |========================== Apache Siege 2.4.29 Concurrent Users: 250 Transactions Per Second > Higher Is Better EPYC 7601: spectre_v2_app2app Lite ..... 23195 |================ EPYC 7601: Linux 4.19 Git .............. 23223 |================ 2 x Xeon Gold: Linux 4.19 Git .......... 29401 |===================== 2 x Xeon Gold: spectre_v2_app2app Lite . 30008 |===================== Xeon E3 v5: spectre_v2_app2app Lite .... 43937 |=============================== Xeon E3 v5: Linux 4.19 Git ............. 41453 |============================= PyBench 2018-02-16 Total For Average Test Times Milliseconds < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 1522 |================================ EPYC 7601: Linux 4.19 Git .............. 1524 |================================ 2 x Xeon Gold: Linux 4.19 Git .......... 1128 |======================== 2 x Xeon Gold: spectre_v2_app2app Lite . 1133 |======================== Xeon E3 v5: spectre_v2_app2app Lite .... 1048 |====================== Xeon E3 v5: Linux 4.19 Git ............. 1047 |====================== Go Benchmarks Test: http Nanoseconds/Operation < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 21572 |=============================== EPYC 7601: Linux 4.19 Git .............. 20894 |============================== 2 x Xeon Gold: Linux 4.19 Git .......... 8287 |============ 2 x Xeon Gold: spectre_v2_app2app Lite . 8434 |============ Xeon E3 v5: spectre_v2_app2app Lite .... 7973 |=========== Xeon E3 v5: Linux 4.19 Git ............. 8052 |============ Go Benchmarks Test: json Nanoseconds/Operation < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 3235572 |======= EPYC 7601: Linux 4.19 Git .............. 3188879 |======= 2 x Xeon Gold: Linux 4.19 Git .......... 2570590 |====== 2 x Xeon Gold: spectre_v2_app2app Lite . 2573917 |====== Xeon E3 v5: spectre_v2_app2app Lite .... 12592754 |============================ Xeon E3 v5: Linux 4.19 Git ............. 12576412 |============================ Go Benchmarks Test: build Nanoseconds/Operation < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 22909851096 |========================= EPYC 7601: Linux 4.19 Git .............. 23071904651 |========================= 2 x Xeon Gold: Linux 4.19 Git .......... 21232716297 |======================= 2 x Xeon Gold: spectre_v2_app2app Lite . 21286005928 |======================= Xeon E3 v5: spectre_v2_app2app Lite .... 13605875332 |=============== Xeon E3 v5: Linux 4.19 Git ............. 13699098738 |=============== Go Benchmarks Test: garbage Nanoseconds/Operation < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 868566 |========== EPYC 7601: Linux 4.19 Git .............. 874918 |========== 2 x Xeon Gold: Linux 4.19 Git .......... 871939 |========== 2 x Xeon Gold: spectre_v2_app2app Lite . 856776 |========= Xeon E3 v5: spectre_v2_app2app Lite .... 2631563 |============================= Xeon E3 v5: Linux 4.19 Git ............. 2624869 |============================= SQLite 3.22 Timed SQLite Insertions Seconds < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 39.50 |===================== EPYC 7601: Linux 4.19 Git .............. 39.79 |====================== 2 x Xeon Gold: Linux 4.19 Git .......... 41.13 |====================== 2 x Xeon Gold: spectre_v2_app2app Lite . 41.32 |====================== Xeon E3 v5: spectre_v2_app2app Lite .... 57.12 |=============================== Xeon E3 v5: Linux 4.19 Git ............. 41.63 |======================= Timed Linux Kernel Compilation 4.18 Time To Compile Seconds < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 42.89 |======== EPYC 7601: Linux 4.19 Git .............. 42.89 |======== 2 x Xeon Gold: Linux 4.19 Git .......... 33.99 |====== 2 x Xeon Gold: spectre_v2_app2app Lite . 34.07 |====== Xeon E3 v5: spectre_v2_app2app Lite .... 157.43 |============================== Xeon E3 v5: Linux 4.19 Git ............. 157.34 |============================== Timed LLVM Compilation 6.0.1 Time To Compile Seconds < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 230 |======== EPYC 7601: Linux 4.19 Git .............. 239 |========= 2 x Xeon Gold: Linux 4.19 Git .......... 171 |====== 2 x Xeon Gold: spectre_v2_app2app Lite . 171 |====== Xeon E3 v5: spectre_v2_app2app Lite .... 926 |================================= Xeon E3 v5: Linux 4.19 Git ............. 917 |================================= Gzip Compression Linux Source Tree Archiving To .tar.gz Seconds < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 46.04 |=============================== EPYC 7601: Linux 4.19 Git .............. 46.06 |=============================== 2 x Xeon Gold: Linux 4.19 Git .......... 40.20 |=========================== 2 x Xeon Gold: spectre_v2_app2app Lite . 40.39 |=========================== Xeon E3 v5: spectre_v2_app2app Lite .... 37.76 |========================= Xeon E3 v5: Linux 4.19 Git ............. 37.93 |========================== Zstd Compression 1.3.4 Compressing ubuntu-16.04.3-server-i386.img, Compression Level 19 Seconds < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 162 |================================= EPYC 7601: Linux 4.19 Git .............. 162 |================================= 2 x Xeon Gold: Linux 4.19 Git .......... 121 |========================= 2 x Xeon Gold: spectre_v2_app2app Lite . 120 |======================== Xeon E3 v5: spectre_v2_app2app Lite .... 130 |========================== Xeon E3 v5: Linux 4.19 Git ............. 129 |========================== Perl Benchmarks Test: Pod2html Seconds < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 0.19061629 |========================== EPYC 7601: Linux 4.19 Git .............. 0.19001476 |========================== 2 x Xeon Gold: Linux 4.19 Git .......... 0.11856598 |================ 2 x Xeon Gold: spectre_v2_app2app Lite . 0.11838295 |================ Xeon E3 v5: spectre_v2_app2app Lite .... 0.11743081 |================ Xeon E3 v5: Linux 4.19 Git ............. 0.11737964 |================ Perl Benchmarks Test: Interpreter Seconds < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 0.00205963 |================= EPYC 7601: Linux 4.19 Git .............. 0.00217786 |================== 2 x Xeon Gold: Linux 4.19 Git .......... 0.00313337 |========================== 2 x Xeon Gold: spectre_v2_app2app Lite . 0.00312067 |========================== Xeon E3 v5: spectre_v2_app2app Lite .... 0.00111016 |========= Xeon E3 v5: Linux 4.19 Git ............. 0.00121241 |========== R Benchmark Seconds < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 0.4652 |============================== EPYC 7601: Linux 4.19 Git .............. 0.4653 |============================== 2 x Xeon Gold: Linux 4.19 Git .......... 0.4295 |============================ 2 x Xeon Gold: spectre_v2_app2app Lite . 0.4276 |============================ Xeon E3 v5: spectre_v2_app2app Lite .... 0.2008 |============= Xeon E3 v5: Linux 4.19 Git ............. 0.2011 |============= GNU Octave Benchmark 4.4.1 Seconds < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 22.26 |============================== EPYC 7601: Linux 4.19 Git .............. 21.35 |============================= 2 x Xeon Gold: Linux 4.19 Git .......... 22.96 |=============================== 2 x Xeon Gold: spectre_v2_app2app Lite . 22.62 |=============================== Xeon E3 v5: spectre_v2_app2app Lite .... 15.20 |===================== Xeon E3 v5: Linux 4.19 Git ............. 15.55 |===================== Blender 2.79a Blend File: Barbershop - Compute: CPU-Only Seconds < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 502 |======= EPYC 7601: Linux 4.19 Git .............. 503 |======= 2 x Xeon Gold: Linux 4.19 Git .......... 373 |===== 2 x Xeon Gold: spectre_v2_app2app Lite . 375 |===== Xeon E3 v5: spectre_v2_app2app Lite .... 2280 |================================ Xeon E3 v5: Linux 4.19 Git ............. 2284 |================================ Scikit-Learn 0.17.1 Seconds < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 27.28 |============================== EPYC 7601: Linux 4.19 Git .............. 28.22 |=============================== 2 x Xeon Gold: Linux 4.19 Git .......... 19.77 |====================== 2 x Xeon Gold: spectre_v2_app2app Lite . 19.31 |===================== Xeon E3 v5: spectre_v2_app2app Lite .... 15.64 |================= Xeon E3 v5: Linux 4.19 Git ............. 15.79 |================= Sunflow Rendering System 0.07.2 Global Illumination + Image Synthesis Seconds < Lower Is Better EPYC 7601: spectre_v2_app2app Lite ..... 1.03 |============= EPYC 7601: Linux 4.19 Git .............. 1.03 |============= 2 x Xeon Gold: Linux 4.19 Git .......... 1.05 |============== 2 x Xeon Gold: spectre_v2_app2app Lite . 1.03 |============= Xeon E3 v5: spectre_v2_app2app Lite .... 2.44 |================================ Xeon E3 v5: Linux 4.19 Git ............. 2.47 |================================