LVI Mitigations Intel Core 2 Quad Q6600 testing with a MSI MS-7350 v100 (V1.0A BIOS) and MSI NVIDIA GeForce 8600 GT 256MB on EndeavourOS rolling via the Phoronix Test Suite.
HTML result view exported from: https://openbenchmarking.org/result/2003133-VE-2003126NI94&obr_sor=y&obr_hgv=Core2Quad-Q6600&sro&grw .
LVI Mitigations Processor Motherboard Chipset Memory Disk Graphics Audio Monitor Network OS Kernel Desktop Display Server Display Driver Compiler File-System Screen Resolution No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 Intel Xeon E3-1275 v6 @ 4.20GHz (4 Cores / 8 Threads) ASUS P10S-M WS (4401 BIOS) Intel Xeon E3-1200 v6/7th 16GB Samsung SSD 970 EVO Plus 500GB Intel HD P630 (1150MHz) Realtek ALC1150 DELL S2409W 2 x Intel I210 Ubuntu 20.04 5.4.0-14-generic (x86_64) GNOME Shell 3.35.91 X Server 1.20.7 modesetting 1.20.7 GCC 9.2.1 20200304 ext4 1920x1080 Intel Core 2 Quad Q6600 @ 2.40GHz (4 Cores) MSI MS-7350 v100 (V1.0A BIOS) NVIDIA C55 4096MB 320GB Western Digital WD3200AVJS-6 MSI NVIDIA GeForce 8600 GT 256MB Realtek ALC888 EndeavourOS rolling 5.5.8-arch1-1 (x86_64) Xfce GCC 9.2.1 20200130 + Clang 9.0.1 OpenBenchmarking.org Environment Details - No LVI Mitigation: CXXFLAGS=-O3 CFLAGS=-O3 - LFENCE Before Indirect Branch: CXXFLAGS="-O3 -Wa,-mlfence-before-indirect-branch=all" CFLAGS="-O3 -Wa,-mlfence-before-indirect-branch=all" - LFENCE Before RET: CXXFLAGS="-O3 -Wa,-mlfence-before-ret=or" CFLAGS="-O3 -Wa,-mlfence-before-ret=or" - LFENCE After Load: CXXFLAGS="-O3 -Wa,-mlfence-after-load=yes" CFLAGS="-O3 -Wa,-mlfence-after-load=yes" - LFENCE Load + Indirect Branch + Ret: CXXFLAGS="-O3 -Wa,-mlfence-after-load=yes -Wa,-mlfence-before-indirect-branch=all -Wa,-mlfence-before-ret=or" CFLAGS="-O3 -Wa,-mlfence-after-load=yes -Wa,-mlfence-before-indirect-branch=all -Wa,-mlfence-before-ret=or" Compiler Details - No LVI Mitigation: --build=x86_64-linux-gnu --disable-vtable-verify --disable-werror --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-gnu-unique-object --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc=auto --enable-offload-targets=nvptx-none,hsa --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --program-prefix=x86_64-linux-gnu- --target=x86_64-linux-gnu --with-abi=m64 --with-arch-32=i686 --with-default-libstdcxx-abi=new --with-gcc-major-version-only --with-multilib-list=m32,m64,mx32 --with-target-system-zlib=auto --with-tune=generic --without-cuda-driver -v - LFENCE Before Indirect Branch: --build=x86_64-linux-gnu --disable-vtable-verify --disable-werror --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-gnu-unique-object --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc=auto --enable-offload-targets=nvptx-none,hsa --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --program-prefix=x86_64-linux-gnu- --target=x86_64-linux-gnu --with-abi=m64 --with-arch-32=i686 --with-default-libstdcxx-abi=new --with-gcc-major-version-only --with-multilib-list=m32,m64,mx32 --with-target-system-zlib=auto --with-tune=generic --without-cuda-driver -v - LFENCE Before RET: --build=x86_64-linux-gnu --disable-vtable-verify --disable-werror --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-gnu-unique-object --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc=auto --enable-offload-targets=nvptx-none,hsa --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --program-prefix=x86_64-linux-gnu- --target=x86_64-linux-gnu --with-abi=m64 --with-arch-32=i686 --with-default-libstdcxx-abi=new --with-gcc-major-version-only --with-multilib-list=m32,m64,mx32 --with-target-system-zlib=auto --with-tune=generic --without-cuda-driver -v - LFENCE After Load: --build=x86_64-linux-gnu --disable-vtable-verify --disable-werror --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-gnu-unique-object --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc=auto --enable-offload-targets=nvptx-none,hsa --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --program-prefix=x86_64-linux-gnu- --target=x86_64-linux-gnu --with-abi=m64 --with-arch-32=i686 --with-default-libstdcxx-abi=new --with-gcc-major-version-only --with-multilib-list=m32,m64,mx32 --with-target-system-zlib=auto --with-tune=generic --without-cuda-driver -v - LFENCE Load + Indirect Branch + Ret: --build=x86_64-linux-gnu --disable-vtable-verify --disable-werror --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-gnu-unique-object --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc=auto --enable-offload-targets=nvptx-none,hsa --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --program-prefix=x86_64-linux-gnu- --target=x86_64-linux-gnu --with-abi=m64 --with-arch-32=i686 --with-default-libstdcxx-abi=new --with-gcc-major-version-only --with-multilib-list=m32,m64,mx32 --with-target-system-zlib=auto --with-tune=generic --without-cuda-driver -v - Core2Quad-Q6600: --disable-libssp --disable-libstdcxx-pch --disable-libunwind-exceptions --disable-werror --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-install-libiberty --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --mandir=/usr/share/man --with-isl --with-linker-hash-style=gnu Processor Details - No LVI Mitigation: Scaling Governor: intel_pstate powersave - CPU Microcode: 0xca - LFENCE Before Indirect Branch: Scaling Governor: intel_pstate powersave - CPU Microcode: 0xca - LFENCE Before RET: Scaling Governor: intel_pstate powersave - CPU Microcode: 0xca - LFENCE After Load: Scaling Governor: intel_pstate powersave - CPU Microcode: 0xca - LFENCE Load + Indirect Branch + Ret: Scaling Governor: intel_pstate powersave - CPU Microcode: 0xca - Core2Quad-Q6600: Scaling Governor: acpi-cpufreq schedutil - CPU Microcode: 0xb6 Security Details - No LVI Mitigation: itlb_multihit: KVM: Mitigation of Split huge pages + l1tf: Mitigation of PTE Inversion; VMX: conditional cache flushes SMT vulnerable + mds: Mitigation of Clear buffers; SMT vulnerable + meltdown: Mitigation of PTI + spec_store_bypass: Mitigation of SSB disabled via prctl and seccomp + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full generic retpoline IBPB: conditional IBRS_FW STIBP: conditional RSB filling + tsx_async_abort: Mitigation of Clear buffers; SMT vulnerable - LFENCE Before Indirect Branch: itlb_multihit: KVM: Mitigation of Split huge pages + l1tf: Mitigation of PTE Inversion; VMX: conditional cache flushes SMT vulnerable + mds: Mitigation of Clear buffers; SMT vulnerable + meltdown: Mitigation of PTI + spec_store_bypass: Mitigation of SSB disabled via prctl and seccomp + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full generic retpoline IBPB: conditional IBRS_FW STIBP: conditional RSB filling + tsx_async_abort: Mitigation of Clear buffers; SMT vulnerable - LFENCE Before RET: itlb_multihit: KVM: Mitigation of Split huge pages + l1tf: Mitigation of PTE Inversion; VMX: conditional cache flushes SMT vulnerable + mds: Mitigation of Clear buffers; SMT vulnerable + meltdown: Mitigation of PTI + spec_store_bypass: Mitigation of SSB disabled via prctl and seccomp + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full generic retpoline IBPB: conditional IBRS_FW STIBP: conditional RSB filling + tsx_async_abort: Mitigation of Clear buffers; SMT vulnerable - LFENCE After Load: itlb_multihit: KVM: Mitigation of Split huge pages + l1tf: Mitigation of PTE Inversion; VMX: conditional cache flushes SMT vulnerable + mds: Mitigation of Clear buffers; SMT vulnerable + meltdown: Mitigation of PTI + spec_store_bypass: Mitigation of SSB disabled via prctl and seccomp + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full generic retpoline IBPB: conditional IBRS_FW STIBP: conditional RSB filling + tsx_async_abort: Mitigation of Clear buffers; SMT vulnerable - LFENCE Load + Indirect Branch + Ret: itlb_multihit: KVM: Mitigation of Split huge pages + l1tf: Mitigation of PTE Inversion; VMX: conditional cache flushes SMT vulnerable + mds: Mitigation of Clear buffers; SMT vulnerable + meltdown: Mitigation of PTI + spec_store_bypass: Mitigation of SSB disabled via prctl and seccomp + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full generic retpoline IBPB: conditional IBRS_FW STIBP: conditional RSB filling + tsx_async_abort: Mitigation of Clear buffers; SMT vulnerable - Core2Quad-Q6600: itlb_multihit: KVM: Mitigation of Split huge pages + l1tf: Mitigation of PTE Inversion; VMX: EPT disabled + mds: Vulnerable: Clear buffers attempted no microcode; SMT disabled + meltdown: Mitigation of PTI + spec_store_bypass: Vulnerable + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full generic retpoline STIBP: disabled RSB filling + tsx_async_abort: Not affected
LVI Mitigations smhasher: wyhash smhasher: wyhash smhasher: fasthash32 smhasher: fasthash32 smhasher: t1ha0_aes_avx2 smhasher: t1ha0_aes_avx2 botan: KASUMI botan: AES-256 botan: Twofish botan: Blowfish botan: CAST-256 encode-flac: WAV To FLAC encode-mp3: WAV To MP3 fftw: Float + SSE - 2D FFT Size 128 hmmer: Pfam Database Search mrbayes: Primate Phylogeny Analysis himeno: Poisson Pressure Solver lammps: Rhodopsin Protein mt-dgemm: Sustained Floating-Point Rate ipc-benchmark: Unnamed Pipe - 2048 ipc-benchmark: FIFO Named Pipe - 2048 coremark: CoreMark Size 666 - Iterations Per Second john-the-ripper: Blowfish john-the-ripper: MD5 sysbench: CPU vpxenc: Speed 5 graphics-magick: Rotate graphics-magick: Resizing x264: H.264 Video Encoding dav1d: Summer Nature 1080p svt-av1: Enc Mode 8 - 1080p c-ray: Total Time - 4K, 16 Rays Per Pixel svt-hevc: 1080p 8-bit YUV To HEVC Video Encode mcperf: Add - 1 mcperf: Get - 1 mcperf: Set - 1 mcperf: Add - 16 openssl: RSA 4096-bit Performance redis: GET rocksdb: Read While Writing leveldb: Hot Read leveldb: Fill Sync leveldb: Rand Read leveldb: Seek Rand leveldb: Fill Sync pgbench: Buffer Test - Normal Load - Read Only pgbench: Buffer Test - Normal Load - Read Write No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 15371.58 30.87 6302.88 39.973 39576.77 40.406 94.534 4027.591 364.617 450.387 143.940 8.922 8.641 36207 5.172 80.094 3504.382174 3.054 1.121684 1520361 1482097 155734.927124 7703 438359 8863.9974 23.86 735 437 44.54 281.07 13.841 160.752 24.41 74622.1 126791.2 74530.7 74588.5 1217.6 2902781.85 925849 3.438 6078.953 3.469 4.581 109133.834947 6337.397726 15139.16 44.594 6305.00 71.416 39743.37 47.809 94.556 4012.193 365.472 455.182 143.742 8.879 8.700 34569 5.190 81.266 3495.065655 3.091 1.125063 1501588 1442004 155387.192967 7704 450730 8482.7413 23.70 720 435 43.59 279.92 13.580 160.740 23.83 73822.3 122542.8 73056.1 1217.5 2807336.75 901427 3.535 6172.760 3.458 4.670 0.1 107867.872327 6489.717451 15368.40 48.446 6301.25 92.460 40155.93 73.134 94.315 3548.671 361.857 449.685 143.336 9.006 9.381 33109 5.778 86.729 3502.538965 2.999 1.134689 1475647 1458219 150838.388176 7632 442128 8475.1843 20.32 688 435 41.30 273.73 12.156 161.232 21.28 72552.0 125504.0 72700.4 72514.5 1214.9 2964800.42 899805 3.833 6140.012 3.800 5.343 0.1 101653.329148 6622.935028 1459.64 183.606 1108.63 158.320 2536.98 100.142 11.961 656.426 23.661 27.041 13.786 97.941 76.727 3179.7 30.026 861.635 182.680759 0.275 0.199113 1506789 1482206 30075.832607 646 92457 9160.5752 2.63 162 65 10.81 85.95 2.169 1234.591 3.88 69923.1 112679.3 69868.9 70035.3 138.1 2290110.92 911671 5.557 6279.406 5.561 10.540 49296.661928 5470.214751 1460.06 199.766 1108.26 205.397 2578.17 129.632 11.947 667.163 23.626 27.036 13.843 97.732 77.149 3147.0 30.058 865.295 182.685208 0.275 0.196899 1454442 1281522 29308.801462 646 92352 9160.6852 2.59 165 65 10.59 85.04 2.133 1235.082 3.79 69416.7 108597.8 68935.8 69368.6 138.1 2157109.92 904375 5.746 6343.590 5.794 10.963 45420.182422 5255.447869 27.142 78.515 160.342 184.671 68.285 44.697 74.758 8166.6 42.487 401.272 1158.733795 1.021 0.065478 528690 567755 43182.063202 3072 97582 2022.7818 4.62 239 138 10.10 55.19 0.18 443.613 14265.5 23106.3 13919.7 14078.3 198.5 816590.00 194734 5.042 51.557 4.969 7.630 8.0 32157.390080 389.682488 OpenBenchmarking.org
SMHasher Hash: wyhash OpenBenchmarking.org MiB/sec, More Is Better SMHasher 2020-02-29 Hash: wyhash No LVI Mitigation LFENCE Before RET LFENCE Before Indirect Branch LFENCE Load + Indirect Branch + Ret LFENCE After Load 3K 6K 9K 12K 15K SE +/- 91.45, N = 3 SE +/- 61.62, N = 3 SE +/- 172.83, N = 3 SE +/- 0.18, N = 3 SE +/- 0.34, N = 3 15371.58 15368.40 15139.16 1460.06 1459.64 1. (CXX) g++ options: -O3 -march=native -lpthread
SMHasher Hash: wyhash OpenBenchmarking.org cycles/hash, Fewer Is Better SMHasher 2020-02-29 Hash: wyhash No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET LFENCE After Load LFENCE Load + Indirect Branch + Ret 40 80 120 160 200 SE +/- 0.00, N = 3 SE +/- 0.03, N = 3 SE +/- 0.01, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 30.87 44.59 48.45 183.61 199.77 1. (CXX) g++ options: -O3 -march=native -lpthread
SMHasher Hash: fasthash32 OpenBenchmarking.org MiB/sec, More Is Better SMHasher 2020-02-29 Hash: fasthash32 LFENCE Before Indirect Branch No LVI Mitigation LFENCE Before RET LFENCE After Load LFENCE Load + Indirect Branch + Ret 1400 2800 4200 5600 7000 SE +/- 2.33, N = 3 SE +/- 4.58, N = 3 SE +/- 2.59, N = 3 SE +/- 0.06, N = 3 SE +/- 0.06, N = 3 6305.00 6302.88 6301.25 1108.63 1108.26 1. (CXX) g++ options: -O3 -march=native -lpthread
SMHasher Hash: fasthash32 OpenBenchmarking.org cycles/hash, Fewer Is Better SMHasher 2020-02-29 Hash: fasthash32 No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET LFENCE After Load LFENCE Load + Indirect Branch + Ret 50 100 150 200 250 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.02, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 39.97 71.42 92.46 158.32 205.40 1. (CXX) g++ options: -O3 -march=native -lpthread
SMHasher Hash: t1ha0_aes_avx2 OpenBenchmarking.org MiB/sec, More Is Better SMHasher 2020-02-29 Hash: t1ha0_aes_avx2 LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation LFENCE Load + Indirect Branch + Ret LFENCE After Load 9K 18K 27K 36K 45K SE +/- 280.18, N = 3 SE +/- 549.98, N = 4 SE +/- 278.78, N = 3 SE +/- 1.85, N = 3 SE +/- 0.19, N = 3 40155.93 39743.37 39576.77 2578.17 2536.98 1. (CXX) g++ options: -O3 -march=native -lpthread
SMHasher Hash: t1ha0_aes_avx2 OpenBenchmarking.org cycles/hash, Fewer Is Better SMHasher 2020-02-29 Hash: t1ha0_aes_avx2 No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET LFENCE After Load LFENCE Load + Indirect Branch + Ret 30 60 90 120 150 SE +/- 0.01, N = 3 SE +/- 0.01, N = 4 SE +/- 0.01, N = 3 SE +/- 0.45, N = 3 SE +/- 0.01, N = 3 40.41 47.81 73.13 100.14 129.63 1. (CXX) g++ options: -O3 -march=native -lpthread
Botan Test: KASUMI OpenBenchmarking.org MiB/s, More Is Better Botan 2.13.0 Test: KASUMI LFENCE Before Indirect Branch No LVI Mitigation LFENCE Before RET Core2Quad-Q6600 LFENCE After Load LFENCE Load + Indirect Branch + Ret 20 40 60 80 100 SE +/- 0.05, N = 3 SE +/- 0.02, N = 3 SE +/- 0.04, N = 3 SE +/- 0.02, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 94.56 94.53 94.32 27.14 11.96 11.95 1. (CXX) g++ options: -fstack-protector -m64 -pthread -lbotan-2 -ldl -lrt
Botan Test: AES-256 OpenBenchmarking.org MiB/s, More Is Better Botan 2.13.0 Test: AES-256 No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET LFENCE Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 900 1800 2700 3600 4500 SE +/- 3.22, N = 3 SE +/- 0.68, N = 3 SE +/- 0.17, N = 3 SE +/- 0.03, N = 3 SE +/- 0.42, N = 3 SE +/- 0.12, N = 3 4027.59 4012.19 3548.67 667.16 656.43 78.52 1. (CXX) g++ options: -fstack-protector -m64 -pthread -lbotan-2 -ldl -lrt
Botan Test: Twofish OpenBenchmarking.org MiB/s, More Is Better Botan 2.13.0 Test: Twofish LFENCE Before Indirect Branch No LVI Mitigation LFENCE Before RET Core2Quad-Q6600 LFENCE After Load LFENCE Load + Indirect Branch + Ret 80 160 240 320 400 SE +/- 0.01, N = 3 SE +/- 0.27, N = 3 SE +/- 0.26, N = 3 SE +/- 0.06, N = 3 SE +/- 0.00, N = 3 SE +/- 0.02, N = 3 365.47 364.62 361.86 160.34 23.66 23.63 1. (CXX) g++ options: -fstack-protector -m64 -pthread -lbotan-2 -ldl -lrt
Botan Test: Blowfish OpenBenchmarking.org MiB/s, More Is Better Botan 2.13.0 Test: Blowfish LFENCE Before Indirect Branch No LVI Mitigation LFENCE Before RET Core2Quad-Q6600 LFENCE After Load LFENCE Load + Indirect Branch + Ret 100 200 300 400 500 SE +/- 0.10, N = 3 SE +/- 4.11, N = 3 SE +/- 0.09, N = 3 SE +/- 0.18, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 455.18 450.39 449.69 184.67 27.04 27.04 1. (CXX) g++ options: -fstack-protector -m64 -pthread -lbotan-2 -ldl -lrt
Botan Test: CAST-256 OpenBenchmarking.org MiB/s, More Is Better Botan 2.13.0 Test: CAST-256 No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load 30 60 90 120 150 SE +/- 0.02, N = 3 SE +/- 0.21, N = 3 SE +/- 0.06, N = 3 SE +/- 0.07, N = 3 SE +/- 0.00, N = 3 SE +/- 0.01, N = 3 143.94 143.74 143.34 68.29 13.84 13.79 1. (CXX) g++ options: -fstack-protector -m64 -pthread -lbotan-2 -ldl -lrt
FLAC Audio Encoding WAV To FLAC OpenBenchmarking.org Seconds, Fewer Is Better FLAC Audio Encoding 1.3.2 WAV To FLAC LFENCE Before Indirect Branch No LVI Mitigation LFENCE Before RET Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load 20 40 60 80 100 SE +/- 0.008, N = 5 SE +/- 0.004, N = 5 SE +/- 0.005, N = 5 SE +/- 0.161, N = 5 SE +/- 0.023, N = 5 SE +/- 0.094, N = 5 8.879 8.922 9.006 44.697 97.732 97.941 -O2 -logg -O3 -O3 1. (CXX) g++ options: -fvisibility=hidden -lm
LAME MP3 Encoding WAV To MP3 OpenBenchmarking.org Seconds, Fewer Is Better LAME MP3 Encoding 3.100 WAV To MP3 No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET Core2Quad-Q6600 LFENCE After Load LFENCE Load + Indirect Branch + Ret 20 40 60 80 100 SE +/- 0.004, N = 3 SE +/- 0.003, N = 3 SE +/- 0.001, N = 3 SE +/- 0.069, N = 3 SE +/- 0.005, N = 3 SE +/- 0.016, N = 3 8.641 8.700 9.381 74.758 76.727 77.149 -O3 -ffast-math -funroll-loops -fschedule-insns2 -fbranch-count-reg -fforce-addr -pipe -O3 -ffast-math -funroll-loops -fschedule-insns2 -fbranch-count-reg -fforce-addr -pipe 1. (CC) gcc options: -lncurses -lm
FFTW Build: Float + SSE - Size: 2D FFT Size 128 OpenBenchmarking.org Mflops, More Is Better FFTW 3.3.6 Build: Float + SSE - Size: 2D FFT Size 128 No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET Core2Quad-Q6600 LFENCE After Load LFENCE Load + Indirect Branch + Ret 8K 16K 24K 32K 40K SE +/- 457.98, N = 3 SE +/- 335.87, N = 3 SE +/- 402.02, N = 6 SE +/- 77.64, N = 3 SE +/- 2.37, N = 3 SE +/- 5.21, N = 3 36207.0 34569.0 33109.0 8166.6 3179.7 3147.0 -fomit-frame-pointer -mtune=native -malign-double -fstrict-aliasing -fno-schedule-insns -ffast-math 1. (CC) gcc options: -pthread -O3 -lm
Timed HMMer Search Pfam Database Search OpenBenchmarking.org Seconds, Fewer Is Better Timed HMMer Search 2.3.2 Pfam Database Search No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 10 20 30 40 50 SE +/- 0.005, N = 3 SE +/- 0.020, N = 3 SE +/- 0.053, N = 3 SE +/- 0.079, N = 3 SE +/- 0.047, N = 3 SE +/- 0.228, N = 3 5.172 5.190 5.778 30.026 30.058 42.487 -O3 -O3 -O2 1. (CC) gcc options: -pthread -lhmmer -lsquid -lm
Timed MrBayes Analysis Primate Phylogeny Analysis OpenBenchmarking.org Seconds, Fewer Is Better Timed MrBayes Analysis 3.2.7 Primate Phylogeny Analysis No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET Core2Quad-Q6600 LFENCE After Load LFENCE Load + Indirect Branch + Ret 200 400 600 800 1000 SE +/- 0.03, N = 3 SE +/- 1.31, N = 3 SE +/- 0.06, N = 3 SE +/- 0.43, N = 3 SE +/- 0.18, N = 3 SE +/- 0.22, N = 3 80.09 81.27 86.73 401.27 861.64 865.30 -lreadline -msse3 -msse4.1 -msse4.2 -maes -mavx -mfma -mavx2 -mrdrnd -mbmi -mbmi2 -madx -mmpx -mabm -msse3 -msse4.1 -msse4.2 -maes -mavx -mfma -mavx2 -mrdrnd -mbmi -mbmi2 -madx -mmpx -mabm 1. (CC) gcc options: -mmmx -msse -msse2 -mssse3 -O3 -std=c99 -pedantic -lm
Himeno Benchmark Poisson Pressure Solver OpenBenchmarking.org MFLOPS, More Is Better Himeno Benchmark 3.0 Poisson Pressure Solver No LVI Mitigation LFENCE Before RET LFENCE Before Indirect Branch Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load 800 1600 2400 3200 4000 SE +/- 8.50, N = 3 SE +/- 2.71, N = 3 SE +/- 2.74, N = 3 SE +/- 1.30, N = 3 SE +/- 0.03, N = 3 SE +/- 0.04, N = 3 3504.38 3502.54 3495.07 1158.73 182.69 182.68 -mavx2 -mavx2 -mavx2 1. (CC) gcc options: -O3
LAMMPS Molecular Dynamics Simulator Model: Rhodopsin Protein OpenBenchmarking.org ns/day, More Is Better LAMMPS Molecular Dynamics Simulator 9Jan2020 Model: Rhodopsin Protein LFENCE Before Indirect Branch No LVI Mitigation LFENCE Before RET Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load 0.6955 1.391 2.0865 2.782 3.4775 SE +/- 0.005, N = 3 SE +/- 0.006, N = 3 SE +/- 0.004, N = 3 SE +/- 0.000, N = 3 SE +/- 0.001, N = 3 SE +/- 0.000, N = 3 3.091 3.054 2.999 1.021 0.275 0.275 -lpng -lz 1. (CXX) g++ options: -O3 -rdynamic -ljpeg -lfftw3 -lm
ACES DGEMM Sustained Floating-Point Rate OpenBenchmarking.org GFLOP/s, More Is Better ACES DGEMM 1.0 Sustained Floating-Point Rate LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 0.2553 0.5106 0.7659 1.0212 1.2765 SE +/- 0.011024, N = 3 SE +/- 0.009027, N = 3 SE +/- 0.009404, N = 3 SE +/- 0.000251, N = 3 SE +/- 0.001089, N = 3 SE +/- 0.000168, N = 3 1.134689 1.125063 1.121684 0.199113 0.196899 0.065478 1. (CC) gcc options: -O3 -march=native -fopenmp
IPC_benchmark Type: Unnamed Pipe - Message Bytes: 2048 OpenBenchmarking.org Messages Per Second, More Is Better IPC_benchmark Type: Unnamed Pipe - Message Bytes: 2048 No LVI Mitigation LFENCE After Load LFENCE Before Indirect Branch LFENCE Before RET LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 300K 600K 900K 1200K 1500K SE +/- 23319.71, N = 3 SE +/- 5934.66, N = 3 SE +/- 14185.23, N = 10 SE +/- 22792.63, N = 13 SE +/- 24328.97, N = 15 SE +/- 11701.09, N = 15 1520361 1506789 1501588 1475647 1454442 528690
IPC_benchmark Type: FIFO Named Pipe - Message Bytes: 2048 OpenBenchmarking.org Messages Per Second, More Is Better IPC_benchmark Type: FIFO Named Pipe - Message Bytes: 2048 LFENCE After Load No LVI Mitigation LFENCE Before RET LFENCE Before Indirect Branch LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 300K 600K 900K 1200K 1500K SE +/- 23424.58, N = 3 SE +/- 6688.93, N = 3 SE +/- 22765.74, N = 3 SE +/- 6206.38, N = 3 SE +/- 15759.80, N = 3 SE +/- 9551.92, N = 12 1482206 1482097 1458219 1442004 1281522 567755
Coremark CoreMark Size 666 - Iterations Per Second OpenBenchmarking.org Iterations/Sec, More Is Better Coremark 1.0 CoreMark Size 666 - Iterations Per Second No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET Core2Quad-Q6600 LFENCE After Load LFENCE Load + Indirect Branch + Ret 30K 60K 90K 120K 150K SE +/- 594.80, N = 3 SE +/- 406.60, N = 3 SE +/- 696.48, N = 3 SE +/- 78.51, N = 3 SE +/- 15.75, N = 3 SE +/- 3.16, N = 3 155734.93 155387.19 150838.39 43182.06 30075.83 29308.80 -O3 -O3 -O3 1. (CC) gcc options: -O2 -lrt" -lrt
John The Ripper Test: Blowfish OpenBenchmarking.org Real C/S, More Is Better John The Ripper 1.9.0-jumbo-1 Test: Blowfish LFENCE Before Indirect Branch No LVI Mitigation LFENCE Before RET Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load 1700 3400 5100 6800 8500 SE +/- 0.88, N = 3 SE +/- 1.45, N = 3 SE +/- 3.18, N = 3 7704 7703 7632 3072 646 646 -lgmp 1. (CC) gcc options: -m64 -lssl -lcrypto -fopenmp -pthread -lm -lz -ldl -lcrypt -lbz2
John The Ripper Test: MD5 OpenBenchmarking.org Real C/S, More Is Better John The Ripper 1.9.0-jumbo-1 Test: MD5 LFENCE Before Indirect Branch LFENCE Before RET No LVI Mitigation Core2Quad-Q6600 LFENCE After Load LFENCE Load + Indirect Branch + Ret 100K 200K 300K 400K 500K SE +/- 90.21, N = 3 SE +/- 520.74, N = 3 SE +/- 42.78, N = 3 SE +/- 417.85, N = 3 SE +/- 10.33, N = 3 SE +/- 6.67, N = 3 450730 442128 438359 97582 92457 92352 -lgmp 1. (CC) gcc options: -m64 -lssl -lcrypto -fopenmp -pthread -lm -lz -ldl -lcrypt -lbz2
Sysbench Test: CPU OpenBenchmarking.org Events Per Second, More Is Better Sysbench 2018-07-28 Test: CPU LFENCE Load + Indirect Branch + Ret LFENCE After Load No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET Core2Quad-Q6600 2K 4K 6K 8K 10K SE +/- 0.43, N = 3 SE +/- 0.95, N = 3 SE +/- 0.57, N = 3 SE +/- 0.77, N = 3 SE +/- 1.05, N = 3 SE +/- 0.96, N = 3 9160.69 9160.58 8864.00 8482.74 8475.18 2022.78 1. (CC) gcc options: -pthread -O3 -funroll-loops -ggdb3 -march=core2 -rdynamic -ldl -laio -lm
VP9 libvpx Encoding Speed: Speed 5 OpenBenchmarking.org Frames Per Second, More Is Better VP9 libvpx Encoding 1.8.2 Speed: Speed 5 No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET Core2Quad-Q6600 LFENCE After Load LFENCE Load + Indirect Branch + Ret 6 12 18 24 30 SE +/- 0.04, N = 3 SE +/- 0.03, N = 3 SE +/- 0.02, N = 3 SE +/- 0.06, N = 5 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 23.86 23.70 20.32 4.62 2.63 2.59 1. (CXX) g++ options: -m64 -lm -lpthread -O3 -fPIC -U_FORTIFY_SOURCE -std=c++11
GraphicsMagick Operation: Rotate OpenBenchmarking.org Iterations Per Minute, More Is Better GraphicsMagick 1.3.33 Operation: Rotate No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load 160 320 480 640 800 SE +/- 0.33, N = 3 SE +/- 8.62, N = 3 SE +/- 1.00, N = 3 SE +/- 2.19, N = 3 SE +/- 0.67, N = 3 735 720 688 239 165 162 -O3 -O3 -O3 -O2 -lwebp -lwebpmux -llcms2 -ltiff -lfreetype -ljasper -lXext -llzma -lzstd -O3 -O3 1. (CC) gcc options: -fopenmp -pthread -ljpeg -lSM -lICE -lX11 -lbz2 -lxml2 -lz -lm -lpthread
GraphicsMagick Operation: Resizing OpenBenchmarking.org Iterations Per Minute, More Is Better GraphicsMagick 1.3.33 Operation: Resizing No LVI Mitigation LFENCE Before RET LFENCE Before Indirect Branch Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load 90 180 270 360 450 SE +/- 1.73, N = 3 437 435 435 138 65 65 -O3 -O3 -O3 -O2 -lwebp -lwebpmux -llcms2 -ltiff -lfreetype -ljasper -lXext -llzma -lzstd -O3 -O3 1. (CC) gcc options: -fopenmp -pthread -ljpeg -lSM -lICE -lX11 -lbz2 -lxml2 -lz -lm -lpthread
x264 H.264 Video Encoding OpenBenchmarking.org Frames Per Second, More Is Better x264 2019-12-17 H.264 Video Encoding No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 10 20 30 40 50 SE +/- 0.49, N = 3 SE +/- 0.28, N = 3 SE +/- 0.11, N = 3 SE +/- 0.01, N = 3 SE +/- 0.02, N = 3 SE +/- 0.10, N = 15 44.54 43.59 41.30 10.81 10.59 10.10 -llsmash -lavformat -lavcodec -lavutil -lswscale 1. (CC) gcc options: -ldl -m64 -lm -lpthread -O3 -ffast-math -std=gnu99 -fPIC -fomit-frame-pointer -fno-tree-vectorize
dav1d Video Input: Summer Nature 1080p OpenBenchmarking.org FPS, More Is Better dav1d 0.6.0 Video Input: Summer Nature 1080p No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 60 120 180 240 300 SE +/- 0.44, N = 3 SE +/- 0.43, N = 3 SE +/- 0.44, N = 3 SE +/- 0.04, N = 3 SE +/- 0.06, N = 3 SE +/- 0.09, N = 3 281.07 279.92 273.73 85.95 85.04 55.19 -O3 - MIN: 263 / MAX: 305.72 -O3 - MIN: 254.67 / MAX: 306.05 -O3 - MIN: 248.49 / MAX: 298.86 -O3 - MIN: 78.9 / MAX: 97.75 -O3 - MIN: 78.13 / MAX: 96.33 MIN: 48.65 / MAX: 59.29 1. (CC) gcc options: -pthread
SVT-AV1 Encoder Mode: Enc Mode 8 - Input: 1080p OpenBenchmarking.org Frames Per Second, More Is Better SVT-AV1 0.8 Encoder Mode: Enc Mode 8 - Input: 1080p No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 4 8 12 16 20 SE +/- 0.012, N = 3 SE +/- 0.015, N = 3 SE +/- 0.020, N = 3 SE +/- 0.003, N = 3 SE +/- 0.001, N = 3 SE +/- 0.000, N = 3 13.841 13.580 12.156 2.169 2.133 0.180 -O3 -O3 -O3 1. (CXX) g++ options: -fPIE -fPIC -pie
C-Ray Total Time - 4K, 16 Rays Per Pixel OpenBenchmarking.org Seconds, Fewer Is Better C-Ray 1.1 Total Time - 4K, 16 Rays Per Pixel LFENCE Before Indirect Branch No LVI Mitigation LFENCE Before RET Core2Quad-Q6600 LFENCE After Load LFENCE Load + Indirect Branch + Ret 300 600 900 1200 1500 SE +/- 0.05, N = 3 SE +/- 0.06, N = 3 SE +/- 0.02, N = 3 SE +/- 0.07, N = 3 SE +/- 0.56, N = 3 SE +/- 0.84, N = 3 160.74 160.75 161.23 443.61 1234.59 1235.08 1. (CC) gcc options: -lm -lpthread -O3
SVT-HEVC 1080p 8-bit YUV To HEVC Video Encode OpenBenchmarking.org Frames Per Second, More Is Better SVT-HEVC 1.4.1 1080p 8-bit YUV To HEVC Video Encode No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET LFENCE After Load LFENCE Load + Indirect Branch + Ret 6 12 18 24 30 SE +/- 0.03, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 24.41 23.83 21.28 3.88 3.79 1. (CC) gcc options: -O3 -fPIE -fPIC -O2 -pie -rdynamic -lpthread -lrt
Memcached mcperf Method: Add - Connections: 1 OpenBenchmarking.org Operations Per Second, More Is Better Memcached mcperf 1.6.0 Method: Add - Connections: 1 No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 16K 32K 48K 64K 80K SE +/- 110.28, N = 3 SE +/- 230.88, N = 3 SE +/- 475.38, N = 3 SE +/- 120.28, N = 3 SE +/- 115.20, N = 3 SE +/- 45.94, N = 3 74622.1 73822.3 72552.0 69923.1 69416.7 14265.5 -O3 -O3 -O3 -O3 -O3 1. (CC) gcc options: -lm -rdynamic
Memcached mcperf Method: Get - Connections: 1 OpenBenchmarking.org Operations Per Second, More Is Better Memcached mcperf 1.6.0 Method: Get - Connections: 1 No LVI Mitigation LFENCE Before RET LFENCE Before Indirect Branch LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 30K 60K 90K 120K 150K SE +/- 1437.67, N = 3 SE +/- 529.02, N = 3 SE +/- 188.33, N = 3 SE +/- 613.45, N = 3 SE +/- 214.95, N = 3 SE +/- 42.44, N = 3 126791.2 125504.0 122542.8 112679.3 108597.8 23106.3 -O3 -O3 -O3 -O3 -O3 1. (CC) gcc options: -lm -rdynamic
Memcached mcperf Method: Set - Connections: 1 OpenBenchmarking.org Operations Per Second, More Is Better Memcached mcperf 1.6.0 Method: Set - Connections: 1 No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 16K 32K 48K 64K 80K SE +/- 403.77, N = 3 SE +/- 149.20, N = 3 SE +/- 129.57, N = 3 SE +/- 157.67, N = 3 SE +/- 383.89, N = 3 SE +/- 56.59, N = 3 74530.7 73056.1 72700.4 69868.9 68935.8 13919.7 -O3 -O3 -O3 -O3 -O3 1. (CC) gcc options: -lm -rdynamic
Memcached mcperf Method: Add - Connections: 16 OpenBenchmarking.org Operations Per Second, More Is Better Memcached mcperf 1.6.0 Method: Add - Connections: 16 No LVI Mitigation LFENCE Before RET LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 16K 32K 48K 64K 80K SE +/- 293.57, N = 3 SE +/- 114.33, N = 3 SE +/- 120.20, N = 3 SE +/- 85.00, N = 3 SE +/- 49.25, N = 3 74588.5 72514.5 70035.3 69368.6 14078.3 -O3 -O3 -O3 -O3 1. (CC) gcc options: -lm -rdynamic
OpenSSL RSA 4096-bit Performance OpenBenchmarking.org Signs Per Second, More Is Better OpenSSL 1.1.1 RSA 4096-bit Performance No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load 300 600 900 1200 1500 SE +/- 1.65, N = 3 SE +/- 0.63, N = 3 SE +/- 0.70, N = 3 SE +/- 0.06, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 1217.6 1217.5 1214.9 198.5 138.1 138.1 1. (CC) gcc options: -pthread -m64 -O3 -lssl -lcrypto -ldl
Redis Test: GET OpenBenchmarking.org Requests Per Second, More Is Better Redis 5.0.5 Test: GET LFENCE Before RET No LVI Mitigation LFENCE Before Indirect Branch LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 600K 1200K 1800K 2400K 3000K SE +/- 23623.92, N = 3 SE +/- 33984.11, N = 15 SE +/- 37253.75, N = 3 SE +/- 6290.25, N = 3 SE +/- 20411.81, N = 3 SE +/- 4095.90, N = 3 2964800.42 2902781.85 2807336.75 2290110.92 2157109.92 816590.00 1. (CXX) g++ options: -MM -MT -g3 -fvisibility=hidden -O3
Facebook RocksDB Test: Read While Writing OpenBenchmarking.org Op/s, More Is Better Facebook RocksDB 6.3.6 Test: Read While Writing No LVI Mitigation LFENCE After Load LFENCE Load + Indirect Branch + Ret LFENCE Before Indirect Branch LFENCE Before RET Core2Quad-Q6600 200K 400K 600K 800K 1000K SE +/- 14182.06, N = 3 SE +/- 6024.37, N = 3 SE +/- 1624.30, N = 3 SE +/- 6920.01, N = 3 SE +/- 10108.45, N = 3 SE +/- 829.70, N = 3 925849 911671 904375 901427 899805 194734 1. (CXX) g++ options: -O3 -march=native -std=c++11 -fno-builtin-memcmp -fno-rtti -rdynamic -lpthread
LevelDB Benchmark: Hot Read OpenBenchmarking.org Microseconds Per Op, Fewer Is Better LevelDB 1.22 Benchmark: Hot Read No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET Core2Quad-Q6600 LFENCE After Load LFENCE Load + Indirect Branch + Ret 1.2929 2.5858 3.8787 5.1716 6.4645 SE +/- 0.010, N = 3 SE +/- 0.029, N = 3 SE +/- 0.016, N = 3 SE +/- 0.066, N = 3 SE +/- 0.011, N = 3 SE +/- 0.011, N = 3 3.438 3.535 3.833 5.042 5.557 5.746 1. (CXX) g++ options: -O3 -lsnappy -lpthread
LevelDB Benchmark: Fill Sync OpenBenchmarking.org Microseconds Per Op, Fewer Is Better LevelDB 1.22 Benchmark: Fill Sync Core2Quad-Q6600 No LVI Mitigation LFENCE Before RET LFENCE Before Indirect Branch LFENCE After Load LFENCE Load + Indirect Branch + Ret 1400 2800 4200 5600 7000 SE +/- 1.68, N = 4 SE +/- 114.30, N = 3 SE +/- 102.63, N = 15 SE +/- 26.04, N = 3 SE +/- 121.57, N = 15 SE +/- 9.49, N = 3 51.56 6078.95 6140.01 6172.76 6279.41 6343.59 1. (CXX) g++ options: -O3 -lsnappy -lpthread
LevelDB Benchmark: Random Read OpenBenchmarking.org Microseconds Per Op, Fewer Is Better LevelDB 1.22 Benchmark: Random Read LFENCE Before Indirect Branch No LVI Mitigation LFENCE Before RET Core2Quad-Q6600 LFENCE After Load LFENCE Load + Indirect Branch + Ret 1.3037 2.6074 3.9111 5.2148 6.5185 SE +/- 0.034, N = 3 SE +/- 0.003, N = 3 SE +/- 0.036, N = 3 SE +/- 0.043, N = 3 SE +/- 0.001, N = 3 SE +/- 0.007, N = 3 3.458 3.469 3.800 4.969 5.561 5.794 1. (CXX) g++ options: -O3 -lsnappy -lpthread
LevelDB Benchmark: Seek Random OpenBenchmarking.org Microseconds Per Op, Fewer Is Better LevelDB 1.22 Benchmark: Seek Random No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET Core2Quad-Q6600 LFENCE After Load LFENCE Load + Indirect Branch + Ret 3 6 9 12 15 SE +/- 0.013, N = 3 SE +/- 0.034, N = 3 SE +/- 0.045, N = 3 SE +/- 0.030, N = 3 SE +/- 0.039, N = 3 SE +/- 0.039, N = 3 4.581 4.670 5.343 7.630 10.540 10.963 1. (CXX) g++ options: -O3 -lsnappy -lpthread
LevelDB Benchmark: Fill Sync OpenBenchmarking.org MB/s, More Is Better LevelDB 1.22 Benchmark: Fill Sync Core2Quad-Q6600 LFENCE Before RET LFENCE Before Indirect Branch 2 4 6 8 10 SE +/- 0.12, N = 4 SE +/- 0.01, N = 15 SE +/- 0.00, N = 3 8.0 0.1 0.1 1. (CXX) g++ options: -O3 -lsnappy -lpthread
PostgreSQL pgbench Scaling: Buffer Test - Test: Normal Load - Mode: Read Only OpenBenchmarking.org TPS, More Is Better PostgreSQL pgbench 12.0 Scaling: Buffer Test - Test: Normal Load - Mode: Read Only No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 20K 40K 60K 80K 100K SE +/- 413.63, N = 3 SE +/- 95.59, N = 3 SE +/- 196.17, N = 3 SE +/- 54.85, N = 3 SE +/- 47.38, N = 3 SE +/- 263.95, N = 15 109133.83 107867.87 101653.33 49296.66 45420.18 32157.39 -O3 -O3 -O3 -O3 -O3 -O2 1. (CC) gcc options: -fno-strict-aliasing -fwrapv -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm
PostgreSQL pgbench Scaling: Buffer Test - Test: Normal Load - Mode: Read Write OpenBenchmarking.org TPS, More Is Better PostgreSQL pgbench 12.0 Scaling: Buffer Test - Test: Normal Load - Mode: Read Write LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 1400 2800 4200 5600 7000 SE +/- 98.41, N = 3 SE +/- 42.83, N = 3 SE +/- 63.09, N = 15 SE +/- 19.12, N = 3 SE +/- 71.67, N = 3 SE +/- 0.93, N = 3 6622.94 6489.72 6337.40 5470.21 5255.45 389.68 -O3 -O3 -O3 -O3 -O3 1. (CC) gcc options: -fno-strict-aliasing -fwrapv -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm
Phoronix Test Suite v10.8.5