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&grr&rdt&rro .
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 Load + Indirect Branch + Ret LFENCE After Load LFENCE Before Indirect Branch LFENCE Before 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 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" - LFENCE After Load: CXXFLAGS="-O3 -Wa,-mlfence-after-load=yes" CFLAGS="-O3 -Wa,-mlfence-after-load=yes" - 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" 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 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 - 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 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 - 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 Load + Indirect Branch + Ret: Scaling Governor: intel_pstate powersave - CPU Microcode: 0xca - LFENCE After Load: 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 - 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 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 - 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 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 - 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 mt-dgemm: Sustained Floating-Point Rate c-ray: Total Time - 4K, 16 Rays Per Pixel mcperf: Add - 16 mrbayes: Primate Phylogeny Analysis svt-av1: Enc Mode 8 - 1080p pgbench: Buffer Test - Normal Load - Read Only pgbench: Buffer Test - Normal Load - Read Write vpxenc: Speed 5 svt-hevc: 1080p 8-bit YUV To HEVC Video Encode x264: H.264 Video Encoding encode-flac: WAV To FLAC john-the-ripper: MD5 graphics-magick: Resizing rocksdb: Read While Writing graphics-magick: Rotate himeno: Poisson Pressure Solver encode-mp3: WAV To MP3 dav1d: Summer Nature 1080p john-the-ripper: Blowfish mcperf: Set - 1 mcperf: Add - 1 ipc-benchmark: Unnamed Pipe - 2048 smhasher: fasthash32 smhasher: fasthash32 lammps: Rhodopsin Protein smhasher: wyhash smhasher: wyhash coremark: CoreMark Size 666 - Iterations Per Second smhasher: t1ha0_aes_avx2 smhasher: t1ha0_aes_avx2 botan: AES-256 mcperf: Get - 1 botan: Blowfish botan: Twofish openssl: RSA 4096-bit Performance botan: CAST-256 botan: KASUMI hmmer: Pfam Database Search redis: GET ipc-benchmark: FIFO Named Pipe - 2048 leveldb: Fill Sync leveldb: Fill Sync sysbench: CPU leveldb: Seek Rand fftw: Float + SSE - 2D FFT Size 128 leveldb: Hot Read leveldb: Rand Read No LVI Mitigation LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before Indirect Branch LFENCE Before RET Core2Quad-Q6600 1.121684 160.752 74588.5 80.094 13.841 109133.834947 6337.397726 23.86 24.41 44.54 8.922 438359 437 925849 735 3504.382174 8.641 281.07 7703 74530.7 74622.1 1520361 39.973 6302.88 3.054 30.87 15371.58 155734.927124 40.406 39576.77 4027.591 126791.2 450.387 364.617 1217.6 143.940 94.534 5.172 2902781.85 1482097 6078.953 8863.9974 4.581 36207 3.438 3.469 0.196899 1235.082 69368.6 865.295 2.133 45420.182422 5255.447869 2.59 3.79 10.59 97.732 92352 65 904375 165 182.685208 77.149 85.04 646 68935.8 69416.7 1454442 205.397 1108.26 0.275 199.766 1460.06 29308.801462 129.632 2578.17 667.163 108597.8 27.036 23.626 138.1 13.843 11.947 30.058 2157109.92 1281522 6343.590 9160.6852 10.963 3147.0 5.746 5.794 0.199113 1234.591 70035.3 861.635 2.169 49296.661928 5470.214751 2.63 3.88 10.81 97.941 92457 65 911671 162 182.680759 76.727 85.95 646 69868.9 69923.1 1506789 158.320 1108.63 0.275 183.606 1459.64 30075.832607 100.142 2536.98 656.426 112679.3 27.041 23.661 138.1 13.786 11.961 30.026 2290110.92 1482206 6279.406 9160.5752 10.540 3179.7 5.557 5.561 1.125063 160.740 81.266 13.580 107867.872327 6489.717451 23.70 23.83 43.59 8.879 450730 435 901427 720 3495.065655 8.700 279.92 7704 73056.1 73822.3 1501588 71.416 6305.00 3.091 44.594 15139.16 155387.192967 47.809 39743.37 4012.193 122542.8 455.182 365.472 1217.5 143.742 94.556 5.190 2807336.75 1442004 6172.760 0.1 8482.7413 4.670 34569 3.535 3.458 1.134689 161.232 72514.5 86.729 12.156 101653.329148 6622.935028 20.32 21.28 41.30 9.006 442128 435 899805 688 3502.538965 9.381 273.73 7632 72700.4 72552.0 1475647 92.460 6301.25 2.999 48.446 15368.40 150838.388176 73.134 40155.93 3548.671 125504.0 449.685 361.857 1214.9 143.336 94.315 5.778 2964800.42 1458219 6140.012 0.1 8475.1843 5.343 33109 3.833 3.800 0.065478 443.613 14078.3 401.272 0.18 32157.390080 389.682488 4.62 10.10 44.697 97582 138 194734 239 1158.733795 74.758 55.19 3072 13919.7 14265.5 528690 1.021 43182.063202 78.515 23106.3 184.671 160.342 198.5 68.285 27.142 42.487 816590.00 567755 51.557 8.0 2022.7818 7.630 8166.6 5.042 4.969 OpenBenchmarking.org
ACES DGEMM Sustained Floating-Point Rate OpenBenchmarking.org GFLOP/s, More Is Better ACES DGEMM 1.0 Sustained Floating-Point Rate Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET 0.2553 0.5106 0.7659 1.0212 1.2765 SE +/- 0.000168, N = 3 SE +/- 0.001089, N = 3 SE +/- 0.000251, N = 3 SE +/- 0.009404, N = 3 SE +/- 0.009027, N = 3 SE +/- 0.011024, N = 3 0.065478 0.196899 0.199113 1.121684 1.125063 1.134689 1. (CC) gcc options: -O3 -march=native -fopenmp
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 Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before RET No LVI Mitigation LFENCE Before Indirect Branch 300 600 900 1200 1500 SE +/- 0.84, N = 3 SE +/- 0.56, N = 3 SE +/- 0.07, N = 3 SE +/- 0.02, N = 3 SE +/- 0.06, N = 3 SE +/- 0.05, N = 3 1235.08 1234.59 443.61 161.23 160.75 160.74 1. (CC) gcc options: -lm -lpthread -O3
Memcached mcperf Method: Add - Connections: 16 OpenBenchmarking.org Operations Per Second, More Is Better Memcached mcperf 1.6.0 Method: Add - Connections: 16 Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before RET No LVI Mitigation 16K 32K 48K 64K 80K SE +/- 49.25, N = 3 SE +/- 85.00, N = 3 SE +/- 120.20, N = 3 SE +/- 114.33, N = 3 SE +/- 293.57, N = 3 14078.3 69368.6 70035.3 72514.5 74588.5 -O3 -O3 -O3 -O3 1. (CC) gcc options: -lm -rdynamic
Timed MrBayes Analysis Primate Phylogeny Analysis OpenBenchmarking.org Seconds, Fewer Is Better Timed MrBayes Analysis 3.2.7 Primate Phylogeny Analysis LFENCE Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 200 400 600 800 1000 SE +/- 0.22, N = 3 SE +/- 0.18, N = 3 SE +/- 0.43, N = 3 SE +/- 0.06, N = 3 SE +/- 1.31, N = 3 SE +/- 0.03, N = 3 865.30 861.64 401.27 86.73 81.27 80.09 -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 -lreadline 1. (CC) gcc options: -mmmx -msse -msse2 -mssse3 -O3 -std=c99 -pedantic -lm
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 Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 4 8 12 16 20 SE +/- 0.000, N = 3 SE +/- 0.001, N = 3 SE +/- 0.003, N = 3 SE +/- 0.020, N = 3 SE +/- 0.015, N = 3 SE +/- 0.012, N = 3 0.180 2.133 2.169 12.156 13.580 13.841 -O3 -O3 -O3 1. (CXX) g++ options: -fPIE -fPIC -pie
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 Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 20K 40K 60K 80K 100K SE +/- 263.95, N = 15 SE +/- 47.38, N = 3 SE +/- 54.85, N = 3 SE +/- 196.17, N = 3 SE +/- 95.59, N = 3 SE +/- 413.63, N = 3 32157.39 45420.18 49296.66 101653.33 107867.87 109133.83 -O2 -O3 -O3 -O3 -O3 -O3 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 Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET 1400 2800 4200 5600 7000 SE +/- 0.93, N = 3 SE +/- 71.67, N = 3 SE +/- 19.12, N = 3 SE +/- 63.09, N = 15 SE +/- 42.83, N = 3 SE +/- 98.41, N = 3 389.68 5255.45 5470.21 6337.40 6489.72 6622.94 -O3 -O3 -O3 -O3 -O3 1. (CC) gcc options: -fno-strict-aliasing -fwrapv -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm
VP9 libvpx Encoding Speed: Speed 5 OpenBenchmarking.org Frames Per Second, More Is Better VP9 libvpx Encoding 1.8.2 Speed: Speed 5 LFENCE Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 6 12 18 24 30 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.06, N = 5 SE +/- 0.02, N = 3 SE +/- 0.03, N = 3 SE +/- 0.04, N = 3 2.59 2.63 4.62 20.32 23.70 23.86 1. (CXX) g++ options: -m64 -lm -lpthread -O3 -fPIC -U_FORTIFY_SOURCE -std=c++11
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 LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 6 12 18 24 30 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.03, N = 3 3.79 3.88 21.28 23.83 24.41 1. (CC) gcc options: -O3 -fPIE -fPIC -O2 -pie -rdynamic -lpthread -lrt
x264 H.264 Video Encoding OpenBenchmarking.org Frames Per Second, More Is Better x264 2019-12-17 H.264 Video Encoding Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 10 20 30 40 50 SE +/- 0.10, N = 15 SE +/- 0.02, N = 3 SE +/- 0.01, N = 3 SE +/- 0.11, N = 3 SE +/- 0.28, N = 3 SE +/- 0.49, N = 3 10.10 10.59 10.81 41.30 43.59 44.54 -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
FLAC Audio Encoding WAV To FLAC OpenBenchmarking.org Seconds, Fewer Is Better FLAC Audio Encoding 1.3.2 WAV To FLAC LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 LFENCE Before RET No LVI Mitigation LFENCE Before Indirect Branch 20 40 60 80 100 SE +/- 0.094, N = 5 SE +/- 0.023, N = 5 SE +/- 0.161, N = 5 SE +/- 0.005, N = 5 SE +/- 0.004, N = 5 SE +/- 0.008, N = 5 97.941 97.732 44.697 9.006 8.922 8.879 -O3 -O3 -O2 -logg 1. (CXX) g++ options: -fvisibility=hidden -lm
John The Ripper Test: MD5 OpenBenchmarking.org Real C/S, More Is Better John The Ripper 1.9.0-jumbo-1 Test: MD5 LFENCE Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 No LVI Mitigation LFENCE Before RET LFENCE Before Indirect Branch 100K 200K 300K 400K 500K SE +/- 6.67, N = 3 SE +/- 10.33, N = 3 SE +/- 417.85, N = 3 SE +/- 42.78, N = 3 SE +/- 520.74, N = 3 SE +/- 90.21, N = 3 92352 92457 97582 438359 442128 450730 -lgmp 1. (CC) gcc options: -m64 -lssl -lcrypto -fopenmp -pthread -lm -lz -ldl -lcrypt -lbz2
GraphicsMagick Operation: Resizing OpenBenchmarking.org Iterations Per Minute, More Is Better GraphicsMagick 1.3.33 Operation: Resizing LFENCE Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before Indirect Branch LFENCE Before RET No LVI Mitigation 90 180 270 360 450 SE +/- 1.73, N = 3 65 65 138 435 435 437 -O3 -O3 -O2 -lwebp -lwebpmux -llcms2 -ltiff -lfreetype -ljasper -lXext -llzma -lzstd -O3 -O3 -O3 1. (CC) gcc options: -fopenmp -pthread -ljpeg -lSM -lICE -lX11 -lbz2 -lxml2 -lz -lm -lpthread
Facebook RocksDB Test: Read While Writing OpenBenchmarking.org Op/s, More Is Better Facebook RocksDB 6.3.6 Test: Read While Writing Core2Quad-Q6600 LFENCE Before RET LFENCE Before Indirect Branch LFENCE Load + Indirect Branch + Ret LFENCE After Load No LVI Mitigation 200K 400K 600K 800K 1000K SE +/- 829.70, N = 3 SE +/- 10108.45, N = 3 SE +/- 6920.01, N = 3 SE +/- 1624.30, N = 3 SE +/- 6024.37, N = 3 SE +/- 14182.06, N = 3 194734 899805 901427 904375 911671 925849 1. (CXX) g++ options: -O3 -march=native -std=c++11 -fno-builtin-memcmp -fno-rtti -rdynamic -lpthread
GraphicsMagick Operation: Rotate OpenBenchmarking.org Iterations Per Minute, More Is Better GraphicsMagick 1.3.33 Operation: Rotate LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 160 320 480 640 800 SE +/- 0.67, N = 3 SE +/- 2.19, N = 3 SE +/- 1.00, N = 3 SE +/- 8.62, N = 3 SE +/- 0.33, N = 3 162 165 239 688 720 735 -O3 -O3 -O2 -lwebp -lwebpmux -llcms2 -ltiff -lfreetype -ljasper -lXext -llzma -lzstd -O3 -O3 -O3 1. (CC) gcc options: -fopenmp -pthread -ljpeg -lSM -lICE -lX11 -lbz2 -lxml2 -lz -lm -lpthread
Himeno Benchmark Poisson Pressure Solver OpenBenchmarking.org MFLOPS, More Is Better Himeno Benchmark 3.0 Poisson Pressure Solver LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 LFENCE Before Indirect Branch LFENCE Before RET No LVI Mitigation 800 1600 2400 3200 4000 SE +/- 0.04, N = 3 SE +/- 0.03, N = 3 SE +/- 1.30, N = 3 SE +/- 2.74, N = 3 SE +/- 2.71, N = 3 SE +/- 8.50, N = 3 182.68 182.69 1158.73 3495.07 3502.54 3504.38 -mavx2 -mavx2 -mavx2 1. (CC) gcc options: -O3
LAME MP3 Encoding WAV To MP3 OpenBenchmarking.org Seconds, Fewer Is Better LAME MP3 Encoding 3.100 WAV To MP3 LFENCE Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 20 40 60 80 100 SE +/- 0.016, N = 3 SE +/- 0.005, N = 3 SE +/- 0.069, N = 3 SE +/- 0.001, N = 3 SE +/- 0.003, N = 3 SE +/- 0.004, N = 3 77.149 76.727 74.758 9.381 8.700 8.641 -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
dav1d Video Input: Summer Nature 1080p OpenBenchmarking.org FPS, More Is Better dav1d 0.6.0 Video Input: Summer Nature 1080p Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 60 120 180 240 300 SE +/- 0.09, N = 3 SE +/- 0.06, N = 3 SE +/- 0.04, N = 3 SE +/- 0.44, N = 3 SE +/- 0.43, N = 3 SE +/- 0.44, N = 3 55.19 85.04 85.95 273.73 279.92 281.07 MIN: 48.65 / MAX: 59.29 -O3 - MIN: 78.13 / MAX: 96.33 -O3 - MIN: 78.9 / MAX: 97.75 -O3 - MIN: 248.49 / MAX: 298.86 -O3 - MIN: 254.67 / MAX: 306.05 -O3 - MIN: 263 / MAX: 305.72 1. (CC) gcc options: -pthread
John The Ripper Test: Blowfish OpenBenchmarking.org Real C/S, More Is Better John The Ripper 1.9.0-jumbo-1 Test: Blowfish LFENCE Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before RET No LVI Mitigation LFENCE Before Indirect Branch 1700 3400 5100 6800 8500 SE +/- 3.18, N = 3 SE +/- 1.45, N = 3 SE +/- 0.88, N = 3 646 646 3072 7632 7703 7704 -lgmp 1. (CC) gcc options: -m64 -lssl -lcrypto -fopenmp -pthread -lm -lz -ldl -lcrypt -lbz2
Memcached mcperf Method: Set - Connections: 1 OpenBenchmarking.org Operations Per Second, More Is Better Memcached mcperf 1.6.0 Method: Set - Connections: 1 Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 16K 32K 48K 64K 80K SE +/- 56.59, N = 3 SE +/- 383.89, N = 3 SE +/- 157.67, N = 3 SE +/- 129.57, N = 3 SE +/- 149.20, N = 3 SE +/- 403.77, N = 3 13919.7 68935.8 69868.9 72700.4 73056.1 74530.7 -O3 -O3 -O3 -O3 -O3 1. (CC) gcc options: -lm -rdynamic
Memcached mcperf Method: Add - Connections: 1 OpenBenchmarking.org Operations Per Second, More Is Better Memcached mcperf 1.6.0 Method: Add - Connections: 1 Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 16K 32K 48K 64K 80K SE +/- 45.94, N = 3 SE +/- 115.20, N = 3 SE +/- 120.28, N = 3 SE +/- 475.38, N = 3 SE +/- 230.88, N = 3 SE +/- 110.28, N = 3 14265.5 69416.7 69923.1 72552.0 73822.3 74622.1 -O3 -O3 -O3 -O3 -O3 1. (CC) gcc options: -lm -rdynamic
IPC_benchmark Type: Unnamed Pipe - Message Bytes: 2048 OpenBenchmarking.org Messages Per Second, More Is Better IPC_benchmark Type: Unnamed Pipe - Message Bytes: 2048 Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE Before RET LFENCE Before Indirect Branch LFENCE After Load No LVI Mitigation 300K 600K 900K 1200K 1500K SE +/- 11701.09, N = 15 SE +/- 24328.97, N = 15 SE +/- 22792.63, N = 13 SE +/- 14185.23, N = 10 SE +/- 5934.66, N = 3 SE +/- 23319.71, N = 3 528690 1454442 1475647 1501588 1506789 1520361
SMHasher Hash: fasthash32 OpenBenchmarking.org cycles/hash, Fewer Is Better SMHasher 2020-02-29 Hash: fasthash32 LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 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 205.40 158.32 92.46 71.42 39.97 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 Load + Indirect Branch + Ret LFENCE After Load LFENCE Before RET No LVI Mitigation LFENCE Before Indirect Branch 1400 2800 4200 5600 7000 SE +/- 0.06, N = 3 SE +/- 0.06, N = 3 SE +/- 2.59, N = 3 SE +/- 4.58, N = 3 SE +/- 2.33, N = 3 1108.26 1108.63 6301.25 6302.88 6305.00 1. (CXX) g++ options: -O3 -march=native -lpthread
LAMMPS Molecular Dynamics Simulator Model: Rhodopsin Protein OpenBenchmarking.org ns/day, More Is Better LAMMPS Molecular Dynamics Simulator 9Jan2020 Model: Rhodopsin Protein LFENCE Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before RET No LVI Mitigation LFENCE Before Indirect Branch 0.6955 1.391 2.0865 2.782 3.4775 SE +/- 0.001, N = 3 SE +/- 0.000, N = 3 SE +/- 0.000, N = 3 SE +/- 0.004, N = 3 SE +/- 0.006, N = 3 SE +/- 0.005, N = 3 0.275 0.275 1.021 2.999 3.054 3.091 -lpng -lz 1. (CXX) g++ options: -O3 -rdynamic -ljpeg -lfftw3 -lm
SMHasher Hash: wyhash OpenBenchmarking.org cycles/hash, Fewer Is Better SMHasher 2020-02-29 Hash: wyhash LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 40 80 120 160 200 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.01, N = 3 SE +/- 0.03, N = 3 SE +/- 0.00, N = 3 199.77 183.61 48.45 44.59 30.87 1. (CXX) g++ options: -O3 -march=native -lpthread
SMHasher Hash: wyhash OpenBenchmarking.org MiB/sec, More Is Better SMHasher 2020-02-29 Hash: wyhash LFENCE After Load LFENCE Load + Indirect Branch + Ret LFENCE Before Indirect Branch LFENCE Before RET No LVI Mitigation 3K 6K 9K 12K 15K SE +/- 0.34, N = 3 SE +/- 0.18, N = 3 SE +/- 172.83, N = 3 SE +/- 61.62, N = 3 SE +/- 91.45, N = 3 1459.64 1460.06 15139.16 15368.40 15371.58 1. (CXX) g++ options: -O3 -march=native -lpthread
Coremark CoreMark Size 666 - Iterations Per Second OpenBenchmarking.org Iterations/Sec, More Is Better Coremark 1.0 CoreMark Size 666 - Iterations Per Second LFENCE Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 30K 60K 90K 120K 150K SE +/- 3.16, N = 3 SE +/- 15.75, N = 3 SE +/- 78.51, N = 3 SE +/- 696.48, N = 3 SE +/- 406.60, N = 3 SE +/- 594.80, N = 3 29308.80 30075.83 43182.06 150838.39 155387.19 155734.93 -O3 -O3 -O3 1. (CC) gcc options: -O2 -lrt" -lrt
SMHasher Hash: t1ha0_aes_avx2 OpenBenchmarking.org cycles/hash, Fewer Is Better SMHasher 2020-02-29 Hash: t1ha0_aes_avx2 LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 30 60 90 120 150 SE +/- 0.01, N = 3 SE +/- 0.45, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 4 SE +/- 0.01, N = 3 129.63 100.14 73.13 47.81 40.41 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 After Load LFENCE Load + Indirect Branch + Ret No LVI Mitigation LFENCE Before Indirect Branch LFENCE Before RET 9K 18K 27K 36K 45K SE +/- 0.19, N = 3 SE +/- 1.85, N = 3 SE +/- 278.78, N = 3 SE +/- 549.98, N = 4 SE +/- 280.18, N = 3 2536.98 2578.17 39576.77 39743.37 40155.93 1. (CXX) g++ options: -O3 -march=native -lpthread
Botan Test: AES-256 OpenBenchmarking.org MiB/s, More Is Better Botan 2.13.0 Test: AES-256 Core2Quad-Q6600 LFENCE After Load LFENCE Load + Indirect Branch + Ret LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 900 1800 2700 3600 4500 SE +/- 0.12, N = 3 SE +/- 0.42, N = 3 SE +/- 0.03, N = 3 SE +/- 0.17, N = 3 SE +/- 0.68, N = 3 SE +/- 3.22, N = 3 78.52 656.43 667.16 3548.67 4012.19 4027.59 1. (CXX) g++ options: -fstack-protector -m64 -pthread -lbotan-2 -ldl -lrt
Memcached mcperf Method: Get - Connections: 1 OpenBenchmarking.org Operations Per Second, More Is Better Memcached mcperf 1.6.0 Method: Get - Connections: 1 Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before Indirect Branch LFENCE Before RET No LVI Mitigation 30K 60K 90K 120K 150K SE +/- 42.44, N = 3 SE +/- 214.95, N = 3 SE +/- 613.45, N = 3 SE +/- 188.33, N = 3 SE +/- 529.02, N = 3 SE +/- 1437.67, N = 3 23106.3 108597.8 112679.3 122542.8 125504.0 126791.2 -O3 -O3 -O3 -O3 -O3 1. (CC) gcc options: -lm -rdynamic
Botan Test: Blowfish OpenBenchmarking.org MiB/s, More Is Better Botan 2.13.0 Test: Blowfish LFENCE Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before RET No LVI Mitigation LFENCE Before Indirect Branch 100 200 300 400 500 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.18, N = 3 SE +/- 0.09, N = 3 SE +/- 4.11, N = 3 SE +/- 0.10, N = 3 27.04 27.04 184.67 449.69 450.39 455.18 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 Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before RET No LVI Mitigation LFENCE Before Indirect Branch 80 160 240 320 400 SE +/- 0.02, N = 3 SE +/- 0.00, N = 3 SE +/- 0.06, N = 3 SE +/- 0.26, N = 3 SE +/- 0.27, N = 3 SE +/- 0.01, N = 3 23.63 23.66 160.34 361.86 364.62 365.47 1. (CXX) g++ options: -fstack-protector -m64 -pthread -lbotan-2 -ldl -lrt
OpenSSL RSA 4096-bit Performance OpenBenchmarking.org Signs Per Second, More Is Better OpenSSL 1.1.1 RSA 4096-bit Performance LFENCE Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 300 600 900 1200 1500 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.06, N = 3 SE +/- 0.70, N = 3 SE +/- 0.63, N = 3 SE +/- 1.65, N = 3 138.1 138.1 198.5 1214.9 1217.5 1217.6 1. (CC) gcc options: -pthread -m64 -O3 -lssl -lcrypto -ldl
Botan Test: CAST-256 OpenBenchmarking.org MiB/s, More Is Better Botan 2.13.0 Test: CAST-256 LFENCE After Load LFENCE Load + Indirect Branch + Ret Core2Quad-Q6600 LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 30 60 90 120 150 SE +/- 0.01, N = 3 SE +/- 0.00, N = 3 SE +/- 0.07, N = 3 SE +/- 0.06, N = 3 SE +/- 0.21, N = 3 SE +/- 0.02, N = 3 13.79 13.84 68.29 143.34 143.74 143.94 1. (CXX) g++ options: -fstack-protector -m64 -pthread -lbotan-2 -ldl -lrt
Botan Test: KASUMI OpenBenchmarking.org MiB/s, More Is Better Botan 2.13.0 Test: KASUMI LFENCE Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before RET No LVI Mitigation LFENCE Before Indirect Branch 20 40 60 80 100 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.02, N = 3 SE +/- 0.04, N = 3 SE +/- 0.02, N = 3 SE +/- 0.05, N = 3 11.95 11.96 27.14 94.32 94.53 94.56 1. (CXX) g++ options: -fstack-protector -m64 -pthread -lbotan-2 -ldl -lrt
Timed HMMer Search Pfam Database Search OpenBenchmarking.org Seconds, Fewer Is Better Timed HMMer Search 2.3.2 Pfam Database Search Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 10 20 30 40 50 SE +/- 0.228, N = 3 SE +/- 0.047, N = 3 SE +/- 0.079, N = 3 SE +/- 0.053, N = 3 SE +/- 0.020, N = 3 SE +/- 0.005, N = 3 42.487 30.058 30.026 5.778 5.190 5.172 -O2 -O3 -O3 1. (CC) gcc options: -pthread -lhmmer -lsquid -lm
Redis Test: GET OpenBenchmarking.org Requests Per Second, More Is Better Redis 5.0.5 Test: GET Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before Indirect Branch No LVI Mitigation LFENCE Before RET 600K 1200K 1800K 2400K 3000K SE +/- 4095.90, N = 3 SE +/- 20411.81, N = 3 SE +/- 6290.25, N = 3 SE +/- 37253.75, N = 3 SE +/- 33984.11, N = 15 SE +/- 23623.92, N = 3 816590.00 2157109.92 2290110.92 2807336.75 2902781.85 2964800.42 1. (CXX) g++ options: -MM -MT -g3 -fvisibility=hidden -O3
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 Core2Quad-Q6600 LFENCE Load + Indirect Branch + Ret LFENCE Before Indirect Branch LFENCE Before RET No LVI Mitigation LFENCE After Load 300K 600K 900K 1200K 1500K SE +/- 9551.92, N = 12 SE +/- 15759.80, N = 3 SE +/- 6206.38, N = 3 SE +/- 22765.74, N = 3 SE +/- 6688.93, N = 3 SE +/- 23424.58, N = 3 567755 1281522 1442004 1458219 1482097 1482206
LevelDB Benchmark: Fill Sync OpenBenchmarking.org Microseconds Per Op, Fewer Is Better LevelDB 1.22 Benchmark: Fill Sync LFENCE Load + Indirect Branch + Ret LFENCE After Load LFENCE Before Indirect Branch LFENCE Before RET No LVI Mitigation Core2Quad-Q6600 1400 2800 4200 5600 7000 SE +/- 9.49, N = 3 SE +/- 121.57, N = 15 SE +/- 26.04, N = 3 SE +/- 102.63, N = 15 SE +/- 114.30, N = 3 SE +/- 1.68, N = 4 6343.59 6279.41 6172.76 6140.01 6078.95 51.56 1. (CXX) g++ options: -O3 -lsnappy -lpthread
LevelDB Benchmark: Fill Sync OpenBenchmarking.org MB/s, More Is Better LevelDB 1.22 Benchmark: Fill Sync LFENCE Before Indirect Branch LFENCE Before RET Core2Quad-Q6600 2 4 6 8 10 SE +/- 0.00, N = 3 SE +/- 0.01, N = 15 SE +/- 0.12, N = 4 0.1 0.1 8.0 1. (CXX) g++ options: -O3 -lsnappy -lpthread
Sysbench Test: CPU OpenBenchmarking.org Events Per Second, More Is Better Sysbench 2018-07-28 Test: CPU Core2Quad-Q6600 LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation LFENCE After Load LFENCE Load + Indirect Branch + Ret 2K 4K 6K 8K 10K SE +/- 0.96, N = 3 SE +/- 1.05, N = 3 SE +/- 0.77, N = 3 SE +/- 0.57, N = 3 SE +/- 0.95, N = 3 SE +/- 0.43, N = 3 2022.78 8475.18 8482.74 8864.00 9160.58 9160.69 1. (CC) gcc options: -pthread -O3 -funroll-loops -ggdb3 -march=core2 -rdynamic -ldl -laio -lm
LevelDB Benchmark: Seek Random OpenBenchmarking.org Microseconds Per Op, Fewer Is Better LevelDB 1.22 Benchmark: Seek Random LFENCE Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 3 6 9 12 15 SE +/- 0.039, N = 3 SE +/- 0.039, N = 3 SE +/- 0.030, N = 3 SE +/- 0.045, N = 3 SE +/- 0.034, N = 3 SE +/- 0.013, N = 3 10.963 10.540 7.630 5.343 4.670 4.581 1. (CXX) g++ options: -O3 -lsnappy -lpthread
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 LFENCE Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 8K 16K 24K 32K 40K SE +/- 5.21, N = 3 SE +/- 2.37, N = 3 SE +/- 77.64, N = 3 SE +/- 402.02, N = 6 SE +/- 335.87, N = 3 SE +/- 457.98, N = 3 3147.0 3179.7 8166.6 33109.0 34569.0 36207.0 -fomit-frame-pointer -mtune=native -malign-double -fstrict-aliasing -fno-schedule-insns -ffast-math 1. (CC) gcc options: -pthread -O3 -lm
LevelDB Benchmark: Hot Read OpenBenchmarking.org Microseconds Per Op, Fewer Is Better LevelDB 1.22 Benchmark: Hot Read LFENCE Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before RET LFENCE Before Indirect Branch No LVI Mitigation 1.2929 2.5858 3.8787 5.1716 6.4645 SE +/- 0.011, N = 3 SE +/- 0.011, N = 3 SE +/- 0.066, N = 3 SE +/- 0.016, N = 3 SE +/- 0.029, N = 3 SE +/- 0.010, N = 3 5.746 5.557 5.042 3.833 3.535 3.438 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 Load + Indirect Branch + Ret LFENCE After Load Core2Quad-Q6600 LFENCE Before RET No LVI Mitigation LFENCE Before Indirect Branch 1.3037 2.6074 3.9111 5.2148 6.5185 SE +/- 0.007, N = 3 SE +/- 0.001, N = 3 SE +/- 0.043, N = 3 SE +/- 0.036, N = 3 SE +/- 0.003, N = 3 SE +/- 0.034, N = 3 5.794 5.561 4.969 3.800 3.469 3.458 1. (CXX) g++ options: -O3 -lsnappy -lpthread
Phoronix Test Suite v10.8.5