LVI Mitigations

Intel Xeon E3-1275 v6 testing with a ASUS P10S-M WS (4401 BIOS) and Intel HD P630 on Ubuntu 20.04 via the Phoronix Test Suite for a future article.

Compare your own system(s) to this result file with the Phoronix Test Suite by running the command: phoronix-test-suite benchmark 2003126-NI-LVIMITIGA83
Jump To Table - Results

View

Do Not Show Noisy Results
Do Not Show Results With Incomplete Data
Do Not Show Results With Little Change/Spread
List Notable Results
Show Result Confidence Charts
Allow Limiting Results To Certain Suite(s)

Statistics

Show Overall Harmonic Mean(s)
Show Overall Geometric Mean
Show Wins / Losses Counts (Pie Chart)
Normalize Results
Remove Outliers Before Calculating Averages

Graph Settings

Force Line Graphs Where Applicable
Convert To Scalar Where Applicable
Prefer Vertical Bar Graphs

Multi-Way Comparison

Condense Multi-Option Tests Into Single Result Graphs

Table

Show Detailed System Result Table

Run Management

Highlight
Result
Toggle/Hide
Result
Result
Identifier
View Logs
Performance Per
Dollar
Date
Run
  Test
  Duration
No LVI Mitigation
March 11 2020
  1 Hour, 38 Minutes
LFENCE Before Indirect Branch
March 12 2020
  1 Hour, 12 Minutes
LFENCE Before RET
March 12 2020
  1 Hour, 28 Minutes
LFENCE After Load
March 12 2020
  4 Hours, 36 Minutes
LFENCE Load + Indirect Branch + Ret
March 11 2020
  4 Hours, 40 Minutes
Invert Behavior (Only Show Selected Data)
  2 Hours, 43 Minutes

Only show results where is faster than
Only show results matching title/arguments (delimit multiple options with a comma):
Do not show results matching title/arguments (delimit multiple options with a comma):


LVI MitigationsOpenBenchmarking.orgPhoronix Test SuiteIntel Xeon E3-1275 v6 @ 4.20GHz (4 Cores / 8 Threads)ASUS P10S-M WS (4401 BIOS)Intel Xeon E3-1200 v6/7th16GBSamsung SSD 970 EVO Plus 500GBIntel HD P630 (1150MHz)Realtek ALC1150DELL S2409W2 x Intel I210Ubuntu 20.045.4.0-14-generic (x86_64)GNOME Shell 3.35.91X Server 1.20.7modesetting 1.20.7GCC 9.2.1 20200304ext41920x1080ProcessorMotherboardChipsetMemoryDiskGraphicsAudioMonitorNetworkOSKernelDesktopDisplay ServerDisplay DriverCompilerFile-SystemScreen ResolutionLVI Mitigations PerformanceSystem Logs- 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" - --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 - Scaling Governor: intel_pstate powersave - CPU Microcode: 0xca- 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

No LVI MitigationLFENCE Before Indirect BranchLFENCE Before RETLFENCE After LoadLFENCE Load + Indirect Branch + RetLogarithmic Result OverviewPhoronix Test SuiteVP9 libvpx EncodingLAME MP3 EncodingOpenSSLC-RayJohn The RipperSMHasherSVT-AV1SVT-HEVCTimed HMMer SearchACES DGEMMGraphicsMagickCoremarkx264dav1dHimeno BenchmarkFFTWLAMMPS Molecular Dynamics SimulatorFLAC Audio EncodingTimed MrBayes AnalysisBotanPostgreSQL pgbenchLevelDBRedisMemcached mcperfIPC_benchmarkSysbenchFacebook RocksDB

LVI Mitigationsipc-benchmark: Unnamed Pipe - 2048ipc-benchmark: FIFO Named Pipe - 2048smhasher: wyhashsmhasher: wyhashsmhasher: fasthash32smhasher: fasthash32smhasher: t1ha0_aes_avx2smhasher: t1ha0_aes_avx2fftw: Float + SSE - 2D FFT Size 128mrbayes: Primate Phylogeny Analysishmmer: Pfam Database Searchlammps: Rhodopsin Proteinbotan: KASUMIbotan: AES-256botan: Twofishbotan: Blowfishbotan: CAST-256john-the-ripper: Blowfishjohn-the-ripper: MD5graphics-magick: Rotategraphics-magick: Resizingdav1d: Summer Nature 1080psvt-av1: Enc Mode 8 - 1080psvt-hevc: 1080p 8-bit YUV To HEVC Video Encodevpxenc: Speed 5x264: H.264 Video Encodingmt-dgemm: Sustained Floating-Point Ratecoremark: CoreMark Size 666 - Iterations Per Secondhimeno: Poisson Pressure Solverc-ray: Total Time - 4K, 16 Rays Per Pixelencode-flac: WAV To FLACencode-mp3: WAV To MP3openssl: RSA 4096-bit Performanceleveldb: Hot Readleveldb: Fill Syncleveldb: Rand Readleveldb: Seek Randpgbench: Buffer Test - Normal Load - Read Onlypgbench: Buffer Test - Normal Load - Read Writeredis: GETsysbench: CPUrocksdb: Read While Writingmcperf: Add - 1mcperf: Get - 1mcperf: Set - 1mcperf: Add - 16leveldb: Fill SyncNo LVI MitigationLFENCE Before Indirect BranchLFENCE Before RETLFENCE After LoadLFENCE Load + Indirect Branch + Ret1520361148209715371.5830.876302.8839.97339576.7740.4063620780.0945.1723.05494.5344027.591364.617450.387143.9407703438359735437281.0713.84124.4123.8644.541.121684155734.9271243504.382174160.7528.9228.6411217.63.4386078.9533.4694.581109133.8349476337.3977262902781.858863.997492584974622.1126791.274530.774588.51501588144200415139.1644.5946305.0071.41639743.3747.8093456981.2665.1903.09194.5564012.193365.472455.182143.7427704450730720435279.9213.58023.8323.7043.591.125063155387.1929673495.065655160.7408.8798.7001217.53.5356172.7603.4584.670107867.8723276489.7174512807336.758482.741390142773822.3122542.873056.10.11475647145821915368.4048.4466301.2592.46040155.9373.1343310986.7295.7782.99994.3153548.671361.857449.685143.3367632442128688435273.7312.15621.2820.3241.301.134689150838.3881763502.538965161.2329.0069.3811214.93.8336140.0123.8005.343101653.3291486622.9350282964800.428475.184389980572552.0125504.072700.472514.50.1150678914822061459.64183.6061108.63158.3202536.98100.1423179.7861.63530.0260.27511.961656.42623.66127.04113.786646924571626585.952.1693.882.6310.810.19911330075.832607182.6807591234.59197.94176.727138.15.5576279.4065.56110.54049296.6619285470.2147512290110.929160.575291167169923.1112679.369868.970035.3145444212815221460.06199.7661108.26205.3972578.17129.6323147.0865.29530.0580.27511.947667.16323.62627.03613.843646923521656585.042.1333.792.5910.590.19689929308.801462182.6852081235.08297.73277.149138.15.7466343.5905.79410.96345420.1824225255.4478692157109.929160.685290437569416.7108597.868935.869368.6OpenBenchmarking.org

IPC_benchmark

IPC_benchmark is a Linux inter-process communication benchmark. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgMessages Per Second, More Is BetterIPC_benchmarkType: Unnamed Pipe - Message Bytes: 2048LFENCE Load + Indirect Branch + RetLFENCE Before RETLFENCE Before Indirect BranchLFENCE After LoadNo LVI Mitigation300K600K900K1200K1500KSE +/- 24328.97, N = 15SE +/- 22792.63, N = 13SE +/- 14185.23, N = 10SE +/- 5934.66, N = 3SE +/- 23319.71, N = 314544421475647150158815067891520361

OpenBenchmarking.orgMessages Per Second, More Is BetterIPC_benchmarkType: FIFO Named Pipe - Message Bytes: 2048LFENCE Load + Indirect Branch + RetLFENCE Before Indirect BranchLFENCE Before RETNo LVI MitigationLFENCE After Load300K600K900K1200K1500KSE +/- 15759.80, N = 3SE +/- 6206.38, N = 3SE +/- 22765.74, N = 3SE +/- 6688.93, N = 3SE +/- 23424.58, N = 312815221442004145821914820971482206

SMHasher

SMHasher is a hash function tester. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgMiB/sec, More Is BetterSMHasher 2020-02-29Hash: wyhashLFENCE After LoadLFENCE Load + Indirect Branch + RetLFENCE Before Indirect BranchLFENCE Before RETNo LVI Mitigation3K6K9K12K15KSE +/- 0.34, N = 3SE +/- 0.18, N = 3SE +/- 172.83, N = 3SE +/- 61.62, N = 3SE +/- 91.45, N = 31459.641460.0615139.1615368.4015371.581. (CXX) g++ options: -O3 -march=native -lpthread

OpenBenchmarking.orgcycles/hash, Fewer Is BetterSMHasher 2020-02-29Hash: wyhashLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation4080120160200SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.01, N = 3SE +/- 0.03, N = 3SE +/- 0.00, N = 3199.77183.6148.4544.5930.871. (CXX) g++ options: -O3 -march=native -lpthread

OpenBenchmarking.orgMiB/sec, More Is BetterSMHasher 2020-02-29Hash: fasthash32LFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETNo LVI MitigationLFENCE Before Indirect Branch14002800420056007000SE +/- 0.06, N = 3SE +/- 0.06, N = 3SE +/- 2.59, N = 3SE +/- 4.58, N = 3SE +/- 2.33, N = 31108.261108.636301.256302.886305.001. (CXX) g++ options: -O3 -march=native -lpthread

OpenBenchmarking.orgcycles/hash, Fewer Is BetterSMHasher 2020-02-29Hash: fasthash32LFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation50100150200250SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.02, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 3205.40158.3292.4671.4239.971. (CXX) g++ options: -O3 -march=native -lpthread

OpenBenchmarking.orgMiB/sec, More Is BetterSMHasher 2020-02-29Hash: t1ha0_aes_avx2LFENCE After LoadLFENCE Load + Indirect Branch + RetNo LVI MitigationLFENCE Before Indirect BranchLFENCE Before RET9K18K27K36K45KSE +/- 0.19, N = 3SE +/- 1.85, N = 3SE +/- 278.78, N = 3SE +/- 549.98, N = 4SE +/- 280.18, N = 32536.982578.1739576.7739743.3740155.931. (CXX) g++ options: -O3 -march=native -lpthread

OpenBenchmarking.orgcycles/hash, Fewer Is BetterSMHasher 2020-02-29Hash: t1ha0_aes_avx2LFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation306090120150SE +/- 0.01, N = 3SE +/- 0.45, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 4SE +/- 0.01, N = 3129.63100.1473.1347.8140.411. (CXX) g++ options: -O3 -march=native -lpthread

FFTW

FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgMflops, More Is BetterFFTW 3.3.6Build: Float + SSE - Size: 2D FFT Size 128LFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation8K16K24K32K40KSE +/- 5.21, N = 3SE +/- 2.37, N = 3SE +/- 402.02, N = 6SE +/- 335.87, N = 3SE +/- 457.98, N = 33147.03179.733109.034569.036207.01. (CC) gcc options: -pthread -O3 -lm

Timed MrBayes Analysis

This test performs a bayesian analysis of a set of primate genome sequences in order to estimate their phylogeny. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed MrBayes Analysis 3.2.7Primate Phylogeny AnalysisLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation2004006008001000SE +/- 0.22, N = 3SE +/- 0.18, N = 3SE +/- 0.06, N = 3SE +/- 1.31, N = 3SE +/- 0.03, N = 3865.30861.6486.7381.2780.091. (CC) gcc options: -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -maes -mavx -mfma -mavx2 -mrdrnd -mbmi -mbmi2 -madx -mmpx -mabm -O3 -std=c99 -pedantic -lm

Timed HMMer Search

This test searches through the Pfam database of profile hidden markov models. The search finds the domain structure of Drosophila Sevenless protein. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed HMMer Search 2.3.2Pfam Database SearchLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation714212835SE +/- 0.047, N = 3SE +/- 0.079, N = 3SE +/- 0.053, N = 3SE +/- 0.020, N = 3SE +/- 0.005, N = 330.05830.0265.7785.1905.1721. (CC) gcc options: -O3 -pthread -lhmmer -lsquid -lm

LAMMPS Molecular Dynamics Simulator

LAMMPS is a classical molecular dynamics code, and an acronym for Large-scale Atomic/Molecular Massively Parallel Simulator. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgns/day, More Is BetterLAMMPS Molecular Dynamics Simulator 9Jan2020Model: Rhodopsin ProteinLFENCE After LoadLFENCE Load + Indirect Branch + RetLFENCE Before RETNo LVI MitigationLFENCE Before Indirect Branch0.69551.3912.08652.7823.4775SE +/- 0.000, N = 3SE +/- 0.001, N = 3SE +/- 0.004, N = 3SE +/- 0.006, N = 3SE +/- 0.005, N = 30.2750.2752.9993.0543.0911. (CXX) g++ options: -O3 -rdynamic -ljpeg -lfftw3 -lm

Botan

Botan is a cross-platform open-source C++ crypto library that supports most all publicly known cryptographic algorithms. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgMiB/s, More Is BetterBotan 2.13.0Test: KASUMILFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETNo LVI MitigationLFENCE Before Indirect Branch20406080100SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.04, N = 3SE +/- 0.02, N = 3SE +/- 0.05, N = 311.9511.9694.3294.5394.561. (CXX) g++ options: -fstack-protector -m64 -pthread -lbotan-2 -ldl -lrt

OpenBenchmarking.orgMiB/s, More Is BetterBotan 2.13.0Test: AES-256LFENCE After LoadLFENCE Load + Indirect Branch + RetLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation9001800270036004500SE +/- 0.42, N = 3SE +/- 0.03, N = 3SE +/- 0.17, N = 3SE +/- 0.68, N = 3SE +/- 3.22, N = 3656.43667.163548.674012.194027.591. (CXX) g++ options: -fstack-protector -m64 -pthread -lbotan-2 -ldl -lrt

OpenBenchmarking.orgMiB/s, More Is BetterBotan 2.13.0Test: TwofishLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETNo LVI MitigationLFENCE Before Indirect Branch80160240320400SE +/- 0.02, N = 3SE +/- 0.00, N = 3SE +/- 0.26, N = 3SE +/- 0.27, N = 3SE +/- 0.01, N = 323.6323.66361.86364.62365.471. (CXX) g++ options: -fstack-protector -m64 -pthread -lbotan-2 -ldl -lrt

OpenBenchmarking.orgMiB/s, More Is BetterBotan 2.13.0Test: BlowfishLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETNo LVI MitigationLFENCE Before Indirect Branch100200300400500SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.09, N = 3SE +/- 4.11, N = 3SE +/- 0.10, N = 327.0427.04449.69450.39455.181. (CXX) g++ options: -fstack-protector -m64 -pthread -lbotan-2 -ldl -lrt

OpenBenchmarking.orgMiB/s, More Is BetterBotan 2.13.0Test: CAST-256LFENCE After LoadLFENCE Load + Indirect Branch + RetLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation306090120150SE +/- 0.01, N = 3SE +/- 0.00, N = 3SE +/- 0.06, N = 3SE +/- 0.21, N = 3SE +/- 0.02, N = 313.7913.84143.34143.74143.941. (CXX) g++ options: -fstack-protector -m64 -pthread -lbotan-2 -ldl -lrt

John The Ripper

This is a benchmark of John The Ripper, which is a password cracker. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgReal C/S, More Is BetterJohn The Ripper 1.9.0-jumbo-1Test: BlowfishLFENCE After LoadLFENCE Load + Indirect Branch + RetLFENCE Before RETNo LVI MitigationLFENCE Before Indirect Branch17003400510068008500SE +/- 1.45, N = 3SE +/- 0.88, N = 36466467632770377041. (CC) gcc options: -m64 -lssl -lcrypto -fopenmp -pthread -lm -lz -ldl -lcrypt -lbz2

OpenBenchmarking.orgReal C/S, More Is BetterJohn The Ripper 1.9.0-jumbo-1Test: MD5LFENCE Load + Indirect Branch + RetLFENCE After LoadNo LVI MitigationLFENCE Before RETLFENCE Before Indirect Branch100K200K300K400K500KSE +/- 6.67, N = 3SE +/- 10.33, N = 3SE +/- 42.78, N = 3SE +/- 520.74, N = 3SE +/- 90.21, N = 392352924574383594421284507301. (CC) gcc options: -m64 -lssl -lcrypto -fopenmp -pthread -lm -lz -ldl -lcrypt -lbz2

GraphicsMagick

This is a test of GraphicsMagick with its OpenMP implementation that performs various imaging tests on a sample 6000x4000 pixel JPEG image. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.33Operation: RotateLFENCE After LoadLFENCE Load + Indirect Branch + RetLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation160320480640800SE +/- 0.67, N = 3SE +/- 1.00, N = 3SE +/- 8.62, N = 3SE +/- 0.33, N = 31621656887207351. (CC) gcc options: -fopenmp -O3 -pthread -ljpeg -lSM -lICE -lX11 -lbz2 -lxml2 -lz -lm -lpthread

OpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.33Operation: ResizingLFENCE After LoadLFENCE Load + Indirect Branch + RetLFENCE Before Indirect BranchLFENCE Before RETNo LVI Mitigation90180270360450SE +/- 1.73, N = 365654354354371. (CC) gcc options: -fopenmp -O3 -pthread -ljpeg -lSM -lICE -lX11 -lbz2 -lxml2 -lz -lm -lpthread

dav1d

Dav1d is an open-source, speedy AV1 video decoder. This test profile times how long it takes to decode sample AV1 video content. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgFPS, More Is Betterdav1d 0.6.0Video Input: Summer Nature 1080pLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation60120180240300SE +/- 0.06, N = 3SE +/- 0.04, N = 3SE +/- 0.44, N = 3SE +/- 0.43, N = 3SE +/- 0.44, N = 385.0485.95273.73279.92281.07MIN: 78.13 / MAX: 96.33MIN: 78.9 / MAX: 97.75MIN: 248.49 / MAX: 298.86MIN: 254.67 / MAX: 306.05MIN: 263 / MAX: 305.721. (CC) gcc options: -O3 -pthread

SVT-AV1

This is a test of the Intel Open Visual Cloud Scalable Video Technology SVT-AV1 CPU-based multi-threaded video encoder for the AV1 video format with a sample 1080p YUV video file. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgFrames Per Second, More Is BetterSVT-AV1 0.8Encoder Mode: Enc Mode 8 - Input: 1080pLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation48121620SE +/- 0.001, N = 3SE +/- 0.003, N = 3SE +/- 0.020, N = 3SE +/- 0.015, N = 3SE +/- 0.012, N = 32.1332.16912.15613.58013.8411. (CXX) g++ options: -O3 -fPIE -fPIC -pie

SVT-HEVC

This is a test of the Intel Open Visual Cloud Scalable Video Technology SVT-HEVC CPU-based multi-threaded video encoder for the HEVC / H.265 video format with a sample 1080p YUV video file. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgFrames Per Second, More Is BetterSVT-HEVC 1.4.11080p 8-bit YUV To HEVC Video EncodeLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation612182430SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.03, N = 33.793.8821.2823.8324.411. (CC) gcc options: -O3 -fPIE -fPIC -O2 -pie -rdynamic -lpthread -lrt

VP9 libvpx Encoding

This is a standard video encoding performance test of Google's libvpx library and the vpxenc command for the VP9/WebM format using a sample 1080p video. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgFrames Per Second, More Is BetterVP9 libvpx Encoding 1.8.2Speed: Speed 5LFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation612182430SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.02, N = 3SE +/- 0.03, N = 3SE +/- 0.04, N = 32.592.6320.3223.7023.861. (CXX) g++ options: -m64 -lm -lpthread -O3 -fPIC -U_FORTIFY_SOURCE -std=c++11

x264

This is a simple test of the x264 encoder run on the CPU (OpenCL support disabled) with a sample video file. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgFrames Per Second, More Is Betterx264 2019-12-17H.264 Video EncodingLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation1020304050SE +/- 0.02, N = 3SE +/- 0.01, N = 3SE +/- 0.11, N = 3SE +/- 0.28, N = 3SE +/- 0.49, N = 310.5910.8141.3043.5944.541. (CC) gcc options: -ldl -m64 -lm -lpthread -O3 -ffast-math -std=gnu99 -fPIC -fomit-frame-pointer -fno-tree-vectorize

ACES DGEMM

This is a multi-threaded DGEMM benchmark. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgGFLOP/s, More Is BetterACES DGEMM 1.0Sustained Floating-Point RateLFENCE Load + Indirect Branch + RetLFENCE After LoadNo LVI MitigationLFENCE Before Indirect BranchLFENCE Before RET0.25530.51060.76591.02121.2765SE +/- 0.001089, N = 3SE +/- 0.000251, N = 3SE +/- 0.009404, N = 3SE +/- 0.009027, N = 3SE +/- 0.011024, N = 30.1968990.1991131.1216841.1250631.1346891. (CC) gcc options: -O3 -march=native -fopenmp

Coremark

This is a test of EEMBC CoreMark processor benchmark. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgIterations/Sec, More Is BetterCoremark 1.0CoreMark Size 666 - Iterations Per SecondLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation30K60K90K120K150KSE +/- 3.16, N = 3SE +/- 15.75, N = 3SE +/- 696.48, N = 3SE +/- 406.60, N = 3SE +/- 594.80, N = 329308.8030075.83150838.39155387.19155734.931. (CC) gcc options: -O2 -O3 -lrt" -lrt

Himeno Benchmark

The Himeno benchmark is a linear solver of pressure Poisson using a point-Jacobi method. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgMFLOPS, More Is BetterHimeno Benchmark 3.0Poisson Pressure SolverLFENCE After LoadLFENCE Load + Indirect Branch + RetLFENCE Before Indirect BranchLFENCE Before RETNo LVI Mitigation8001600240032004000SE +/- 0.04, N = 3SE +/- 0.03, N = 3SE +/- 2.74, N = 3SE +/- 2.71, N = 3SE +/- 8.50, N = 3182.68182.693495.073502.543504.381. (CC) gcc options: -O3 -mavx2

C-Ray

This is a test of C-Ray, a simple raytracer designed to test the floating-point CPU performance. This test is multi-threaded (16 threads per core), will shoot 8 rays per pixel for anti-aliasing, and will generate a 1600 x 1200 image. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgSeconds, Fewer Is BetterC-Ray 1.1Total Time - 4K, 16 Rays Per PixelLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETNo LVI MitigationLFENCE Before Indirect Branch30060090012001500SE +/- 0.84, N = 3SE +/- 0.56, N = 3SE +/- 0.02, N = 3SE +/- 0.06, N = 3SE +/- 0.05, N = 31235.081234.59161.23160.75160.741. (CC) gcc options: -lm -lpthread -O3

FLAC Audio Encoding

This test times how long it takes to encode a sample WAV file to FLAC format five times. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgSeconds, Fewer Is BetterFLAC Audio Encoding 1.3.2WAV To FLACLFENCE After LoadLFENCE Load + Indirect Branch + RetLFENCE Before RETNo LVI MitigationLFENCE Before Indirect Branch20406080100SE +/- 0.094, N = 5SE +/- 0.023, N = 5SE +/- 0.005, N = 5SE +/- 0.004, N = 5SE +/- 0.008, N = 597.94197.7329.0068.9228.8791. (CXX) g++ options: -O3 -fvisibility=hidden -lm

LAME MP3 Encoding

LAME is an MP3 encoder licensed under the LGPL. This test measures the time required to encode a WAV file to MP3 format. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgSeconds, Fewer Is BetterLAME MP3 Encoding 3.100WAV To MP3LFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation20406080100SE +/- 0.016, N = 3SE +/- 0.005, N = 3SE +/- 0.001, N = 3SE +/- 0.003, N = 3SE +/- 0.004, N = 377.14976.7279.3818.7008.6411. (CC) gcc options: -O3 -ffast-math -funroll-loops -fschedule-insns2 -fbranch-count-reg -fforce-addr -pipe -lncurses -lm

OpenSSL

OpenSSL is an open-source toolkit that implements SSL (Secure Sockets Layer) and TLS (Transport Layer Security) protocols. This test measures the RSA 4096-bit performance of OpenSSL. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgSigns Per Second, More Is BetterOpenSSL 1.1.1RSA 4096-bit PerformanceLFENCE After LoadLFENCE Load + Indirect Branch + RetLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation30060090012001500SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.70, N = 3SE +/- 0.63, N = 3SE +/- 1.65, N = 3138.1138.11214.91217.51217.61. (CC) gcc options: -pthread -m64 -O3 -lssl -lcrypto -ldl

LevelDB

LevelDB is a key-value storage library developed by Google that supports making use of Snappy for data compression and has other modern features. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgMicroseconds Per Op, Fewer Is BetterLevelDB 1.22Benchmark: Hot ReadLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation1.29292.58583.87875.17166.4645SE +/- 0.011, N = 3SE +/- 0.011, N = 3SE +/- 0.016, N = 3SE +/- 0.029, N = 3SE +/- 0.010, N = 35.7465.5573.8333.5353.4381. (CXX) g++ options: -O3 -lsnappy -lpthread

OpenBenchmarking.orgMicroseconds Per Op, Fewer Is BetterLevelDB 1.22Benchmark: Fill SyncLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before Indirect BranchLFENCE Before RETNo LVI Mitigation14002800420056007000SE +/- 9.49, N = 3SE +/- 121.57, N = 15SE +/- 26.04, N = 3SE +/- 102.63, N = 15SE +/- 114.30, N = 36343.596279.416172.766140.016078.951. (CXX) g++ options: -O3 -lsnappy -lpthread

OpenBenchmarking.orgMicroseconds Per Op, Fewer Is BetterLevelDB 1.22Benchmark: Random ReadLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETNo LVI MitigationLFENCE Before Indirect Branch1.30372.60743.91115.21486.5185SE +/- 0.007, N = 3SE +/- 0.001, N = 3SE +/- 0.036, N = 3SE +/- 0.003, N = 3SE +/- 0.034, N = 35.7945.5613.8003.4693.4581. (CXX) g++ options: -O3 -lsnappy -lpthread

OpenBenchmarking.orgMicroseconds Per Op, Fewer Is BetterLevelDB 1.22Benchmark: Seek RandomLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation3691215SE +/- 0.039, N = 3SE +/- 0.039, N = 3SE +/- 0.045, N = 3SE +/- 0.034, N = 3SE +/- 0.013, N = 310.96310.5405.3434.6704.5811. (CXX) g++ options: -O3 -lsnappy -lpthread

PostgreSQL pgbench

This is a simple benchmark of PostgreSQL using pgbench. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgTPS, More Is BetterPostgreSQL pgbench 12.0Scaling: Buffer Test - Test: Normal Load - Mode: Read OnlyLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation20K40K60K80K100KSE +/- 47.38, N = 3SE +/- 54.85, N = 3SE +/- 196.17, N = 3SE +/- 95.59, N = 3SE +/- 413.63, N = 345420.1849296.66101653.33107867.87109133.831. (CC) gcc options: -fno-strict-aliasing -fwrapv -O3 -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm

OpenBenchmarking.orgTPS, More Is BetterPostgreSQL pgbench 12.0Scaling: Buffer Test - Test: Normal Load - Mode: Read WriteLFENCE Load + Indirect Branch + RetLFENCE After LoadNo LVI MitigationLFENCE Before Indirect BranchLFENCE Before RET14002800420056007000SE +/- 71.67, N = 3SE +/- 19.12, N = 3SE +/- 63.09, N = 15SE +/- 42.83, N = 3SE +/- 98.41, N = 35255.455470.216337.406489.726622.941. (CC) gcc options: -fno-strict-aliasing -fwrapv -O3 -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm

Redis

Redis is an open-source data structure server. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgRequests Per Second, More Is BetterRedis 5.0.5Test: GETLFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before Indirect BranchNo LVI MitigationLFENCE Before RET600K1200K1800K2400K3000KSE +/- 20411.81, N = 3SE +/- 6290.25, N = 3SE +/- 37253.75, N = 3SE +/- 33984.11, N = 15SE +/- 23623.92, N = 32157109.922290110.922807336.752902781.852964800.421. (CXX) g++ options: -MM -MT -g3 -fvisibility=hidden -O3

Sysbench

This is a benchmark of Sysbench with CPU and memory sub-tests. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgEvents Per Second, More Is BetterSysbench 2018-07-28Test: CPULFENCE Before RETLFENCE Before Indirect BranchNo LVI MitigationLFENCE After LoadLFENCE Load + Indirect Branch + Ret2K4K6K8K10KSE +/- 1.05, N = 3SE +/- 0.77, N = 3SE +/- 0.57, N = 3SE +/- 0.95, N = 3SE +/- 0.43, N = 38475.188482.748864.009160.589160.691. (CC) gcc options: -pthread -O3 -funroll-loops -ggdb3 -march=core2 -rdynamic -ldl -laio -lm

Facebook RocksDB

This is a benchmark of Facebook's RocksDB as an embeddable persistent key-value store for fast storage based on Google's LevelDB. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgOp/s, More Is BetterFacebook RocksDB 6.3.6Test: Read While WritingLFENCE Before RETLFENCE Before Indirect BranchLFENCE Load + Indirect Branch + RetLFENCE After LoadNo LVI Mitigation200K400K600K800K1000KSE +/- 10108.45, N = 3SE +/- 6920.01, N = 3SE +/- 1624.30, N = 3SE +/- 6024.37, N = 3SE +/- 14182.06, N = 38998059014279043759116719258491. (CXX) g++ options: -O3 -march=native -std=c++11 -fno-builtin-memcmp -fno-rtti -rdynamic -lpthread

Memcached mcperf

This is a test of twmperf/mcperf with memcached, a distributed memory object caching system. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgOperations Per Second, More Is BetterMemcached mcperf 1.6.0Method: Add - Connections: 1LFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation16K32K48K64K80KSE +/- 115.20, N = 3SE +/- 120.28, N = 3SE +/- 475.38, N = 3SE +/- 230.88, N = 3SE +/- 110.28, N = 369416.769923.172552.073822.374622.11. (CC) gcc options: -O3 -lm -rdynamic

OpenBenchmarking.orgOperations Per Second, More Is BetterMemcached mcperf 1.6.0Method: Get - Connections: 1LFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before Indirect BranchLFENCE Before RETNo LVI Mitigation30K60K90K120K150KSE +/- 214.95, N = 3SE +/- 613.45, N = 3SE +/- 188.33, N = 3SE +/- 529.02, N = 3SE +/- 1437.67, N = 3108597.8112679.3122542.8125504.0126791.21. (CC) gcc options: -O3 -lm -rdynamic

OpenBenchmarking.orgOperations Per Second, More Is BetterMemcached mcperf 1.6.0Method: Set - Connections: 1LFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETLFENCE Before Indirect BranchNo LVI Mitigation16K32K48K64K80KSE +/- 383.89, N = 3SE +/- 157.67, N = 3SE +/- 129.57, N = 3SE +/- 149.20, N = 3SE +/- 403.77, N = 368935.869868.972700.473056.174530.71. (CC) gcc options: -O3 -lm -rdynamic

OpenBenchmarking.orgOperations Per Second, More Is BetterMemcached mcperf 1.6.0Method: Add - Connections: 16LFENCE Load + Indirect Branch + RetLFENCE After LoadLFENCE Before RETNo LVI Mitigation16K32K48K64K80KSE +/- 85.00, N = 3SE +/- 120.20, N = 3SE +/- 114.33, N = 3SE +/- 293.57, N = 369368.670035.372514.574588.51. (CC) gcc options: -O3 -lm -rdynamic

LevelDB

LevelDB is a key-value storage library developed by Google that supports making use of Snappy for data compression and has other modern features. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgMB/s, More Is BetterLevelDB 1.22Benchmark: Fill SyncLFENCE Before Indirect BranchLFENCE Before RET0.02250.0450.06750.090.1125SE +/- 0.00, N = 3SE +/- 0.01, N = 150.10.11. (CXX) g++ options: -O3 -lsnappy -lpthread