Linux 4.19 + New Microcode: Bare Metal vs. KVM Guest

Tests for a future article.

HTML result view exported from: https://openbenchmarking.org/result/1808277-RA-MICROCODE34&grt&rdt.

ProcessorMotherboardChipsetMemoryDiskGraphicsMonitorNetworkAudioOSKernelDesktopDisplay ServerDisplay DriverCompilerFile-SystemScreen ResolutionSystem LayerStockNew Microcode Bare Metal VM Guest Bare Metal VM Guest2 x Intel Xeon Gold 6138 @ 3.70GHz (40 Cores / 80 Threads)TYAN S7106 (V1.01 BIOS)Intel Sky Lake-E DMI3 Registers96256MB256GB Samsung SSD 850 + 2000GB Seagate ST2000DM006-2DM1 + 2 x 120GB TOSHIBA-TR150ASPEED ASPEED FamilyVE228Intel I210 Gigabit ConnectionUbuntu 18.044.18.0-999-generic (x86_64) 20180824GNOME Shell 3.28.2X Server 1.19.6modesetting 1.19.6GCC 7.3.0ext41920x108064 x Intel Xeon (Skylake IBRS) @ 2.00GHz (64 Cores)QEMU Standard PC (i440FX + PIIX 1996) (1.10.2-1ubuntu1 BIOS)Intel 440FX- 82441FX PMC47104MB162GBRed Hat QXL paravirtual graphic cardQEMU GenericRed Hat Virtio device1024x768KVM2 x Intel Xeon Gold 6138 @ 3.70GHz (40 Cores / 80 Threads)TYAN S7106 (V1.01 BIOS)Intel Sky Lake-E DMI3 Registers96256MB256GB Samsung SSD 850 + 2000GB Seagate ST2000DM006-2DM1 + 2 x 120GB TOSHIBA-TR150ASPEED ASPEED FamilyVE228Intel I210 Gigabit Connection1920x108064 x Intel Xeon (Skylake IBRS) @ 2.00GHz (64 Cores)QEMU Standard PC (i440FX + PIIX 1996) (1.10.2-1ubuntu1 BIOS)Intel 440FX- 82441FX PMC47104MB162GBRed Hat QXL paravirtual graphic cardQEMU GenericRed Hat Virtio device1024x768KVMOpenBenchmarking.orgCompiler Details- --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++ --enable-libmpx --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc=auto --enable-offload-targets=nvptx-none --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-as=/usr/bin/x86_64-linux-gnu-as --with-default-libstdcxx-abi=new --with-gcc-major-version-only --with-ld=/usr/bin/x86_64-linux-gnu-ld --with-multilib-list=m32,m64,mx32 --with-target-system-zlib --with-tune=generic --without-cuda-driver -v Disk Details- Stock: Bare Metal: CFQ / errors=remount-ro,relatime,rw- Stock: VM Guest: NONE / errors=remount-ro,relatime,rw- New Microcode: Bare Metal: CFQ / errors=remount-ro,relatime,rw- New Microcode: VM Guest: NONE / errors=remount-ro,relatime,rwProcessor Details- Stock: Bare Metal, New Microcode: Bare Metal: Scaling Governor: intel_pstate powersavePython Details- Python 2.7.15rc1 + Python 3.6.5Security Details- Stock: Bare Metal: KPTI + __user pointer sanitization + Full generic retpoline IBPB IBRS_FW + PTE Inversion; VMX: conditional cache flushes SMT vulnerable Protection- Stock: VM Guest: KPTI + __user pointer sanitization + Full generic retpoline IBPB IBRS_FW + PTE Inversion Protection- New Microcode: Bare Metal: KPTI + __user pointer sanitization + Full generic retpoline IBPB IBRS_FW + SSB disabled via prctl and seccomp + PTE Inversion; VMX: conditional cache flushes SMT vulnerable Protection- New Microcode: VM Guest: KPTI + __user pointer sanitization + Full generic retpoline IBPB IBRS_FW + PTE Inversion Protection

blender: Barbershop - CPU-Onlycompilebench: Compilecompilebench: Initial Createcompilebench: Read Compiled Treehackbench: 32 - Processmysqlslap: 32nginx: Static Web Page Servingpgbench: Buffer Test - Normal Load - Read Onlyprimesieve: 1e12 Prime Number Generationredis: GETredis: SETstress-ng: Semaphoresstress-ng: Socket Activitystress-ng: Context Switchingstress-ng: System V Message Passingsysbench: Memorysysbench: CPUbuild-linux-kernel: Time To Compilebuild-llvm: Time To Compilettsiod-renderer: Phong Rendering With Soft-Shadow Mappingx265: H.265 Video EncodingStockNew Microcode Bare Metal VM Guest Bare Metal VM Guest374.051712.79501.792469.9335.7324624591.86585224.798.622142971.111656081.461831962.433454.6322234776.327053890.1411764465.1158755.6533.70169.53742.6810.31423.311467.65460.822351.2871.5413127078.58384280.7024.621999876.291455207.36600043.1314127.9512704770.9311422458.9110796572.7951676.0937.21208.78673.7410.36373.981698.50487.432478.3636.7322123745.74588527.688.642059062.251688379.921890399.793313.1222976365.087163233.3111803679.9959370.5533.40171.02731.6010.32420.121489.48460.992281.8973.7915227448.91377789.3524.411997504.971393755.40602511.2813024.2712082482.7112196067.3310580279.0951662.1336.90208.59668.1110.43OpenBenchmarking.org

Blender

Blend File: Barbershop - Compute: CPU-Only

StockNew MicrocodeOpenBenchmarking.orgSeconds, Fewer Is BetterBlender 2.79aBlend File: Barbershop - Compute: CPU-OnlyBare MetalVM Guest90180270360450374.05423.31373.98420.12

Compile Bench

Test: Compile

StockNew MicrocodeOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: CompileBare MetalVM Guest400800120016002000SE +/- 8.67, N = 3SE +/- 11.24, N = 3SE +/- 2.32, N = 3SE +/- 4.45, N = 31712.791467.651698.501489.48

Compile Bench

Test: Initial Create

StockNew MicrocodeOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: Initial CreateBare MetalVM Guest110220330440550SE +/- 3.51, N = 3SE +/- 15.44, N = 3SE +/- 1.19, N = 3SE +/- 5.36, N = 3501.79460.82487.43460.99

Compile Bench

Test: Read Compiled Tree

StockNew MicrocodeOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: Read Compiled TreeBare MetalVM Guest5001000150020002500SE +/- 12.91, N = 3SE +/- 12.12, N = 3SE +/- 27.68, N = 3SE +/- 35.39, N = 32469.932351.282478.362281.89

Hackbench

Count: 32 - Type: Process

StockNew MicrocodeOpenBenchmarking.orgSeconds, Fewer Is BetterHackbenchCount: 32 - Type: ProcessBare MetalVM Guest1632486480SE +/- 0.99, N = 12SE +/- 0.25, N = 3SE +/- 0.69, N = 3SE +/- 0.53, N = 335.7371.5436.7373.791. (CC) gcc options: -lpthread

MariaDB

Clients: 32

StockNew MicrocodeOpenBenchmarking.orgQueries Per Second, More Is BetterMariaDB 10.3.8Clients: 32Bare MetalVM Guest50100150200250SE +/- 1.96, N = 3SE +/- 0.75, N = 3SE +/- 2.85, N = 3SE +/- 0.67, N = 32461312211521. (CXX) g++ options: -pie -fPIC -fstack-protector -fno-rtti -O2 -lpthread -llzma -laio -lz -lm -lpcre -lcrypt -lssl -lcrypto -ldl

NGINX Benchmark

Static Web Page Serving

StockNew MicrocodeOpenBenchmarking.orgRequests Per Second, More Is BetterNGINX Benchmark 1.9.9Static Web Page ServingBare MetalVM Guest6K12K18K24K30KSE +/- 140.64, N = 3SE +/- 1495.37, N = 3SE +/- 114.41, N = 3SE +/- 83.37, N = 324591.8627078.5823745.7427448.911. (CC) gcc options: -lpthread -lcrypt -lcrypto -lz -O3 -march=native

PostgreSQL pgbench

Scaling: Buffer Test - Test: Normal Load - Mode: Read Only

StockNew MicrocodeOpenBenchmarking.orgTPS, More Is BetterPostgreSQL pgbench 10.3Scaling: Buffer Test - Test: Normal Load - Mode: Read OnlyBare MetalVM Guest130K260K390K520K650KSE +/- 2323.77, N = 3SE +/- 2865.20, N = 3SE +/- 823.94, N = 3SE +/- 3308.21, N = 3585224.79384280.70588527.68377789.351. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm

Primesieve

1e12 Prime Number Generation

StockNew MicrocodeOpenBenchmarking.orgSeconds, Fewer Is BetterPrimesieve 7.11e12 Prime Number GenerationBare MetalVM Guest612182430SE +/- 0.03, N = 3SE +/- 0.15, N = 3SE +/- 0.02, N = 3SE +/- 0.25, N = 38.6224.628.6424.411. (CXX) g++ options: -O3 -lpthread

Redis

Test: GET

StockNew MicrocodeOpenBenchmarking.orgRequests Per Second, More Is BetterRedis 4.0.8Test: GETBare MetalVM Guest500K1000K1500K2000K2500KSE +/- 42615.86, N = 12SE +/- 67289.89, N = 12SE +/- 6166.42, N = 3SE +/- 51272.68, N = 122142971.111999876.292059062.251997504.971. (CC) gcc options: -ggdb -rdynamic -lm -ldl -pthread

Redis

Test: SET

StockNew MicrocodeOpenBenchmarking.orgRequests Per Second, More Is BetterRedis 4.0.8Test: SETBare MetalVM Guest400K800K1200K1600K2000KSE +/- 19253.77, N = 3SE +/- 51445.85, N = 12SE +/- 10888.60, N = 3SE +/- 60085.02, N = 121656081.461455207.361688379.921393755.401. (CC) gcc options: -ggdb -rdynamic -lm -ldl -pthread

Stress-NG

Test: Semaphores

StockNew MicrocodeOpenBenchmarking.orgBogo Ops/s, More Is BetterStress-NG 0.07.26Test: SemaphoresBare MetalVM Guest400K800K1200K1600K2000KSE +/- 29092.76, N = 3SE +/- 925.56, N = 3SE +/- 26014.39, N = 6SE +/- 2331.55, N = 31831962.43600043.131890399.79602511.281. (CC) gcc options: -O2 -std=gnu99 -lm -lz -lcrypt -lrt -lpthread -laio -lc

Stress-NG

Test: Socket Activity

StockNew MicrocodeOpenBenchmarking.orgBogo Ops/s, More Is BetterStress-NG 0.07.26Test: Socket ActivityBare MetalVM Guest3K6K9K12K15KSE +/- 853.24, N = 12SE +/- 151.62, N = 3SE +/- 943.03, N = 12SE +/- 207.14, N = 33454.6314127.953313.1213024.271. (CC) gcc options: -O2 -std=gnu99 -lm -lz -lcrypt -lrt -lpthread -laio -lc

Stress-NG

Test: Context Switching

StockNew MicrocodeOpenBenchmarking.orgBogo Ops/s, More Is BetterStress-NG 0.07.26Test: Context SwitchingBare MetalVM Guest5M10M15M20M25MSE +/- 858271.57, N = 12SE +/- 57576.83, N = 3SE +/- 550387.69, N = 12SE +/- 69768.14, N = 322234776.3212704770.9322976365.0812082482.711. (CC) gcc options: -O2 -std=gnu99 -lm -lz -lcrypt -lrt -lpthread -laio -lc

Stress-NG

Test: System V Message Passing

StockNew MicrocodeOpenBenchmarking.orgBogo Ops/s, More Is BetterStress-NG 0.07.26Test: System V Message PassingBare MetalVM Guest3M6M9M12M15MSE +/- 342053.14, N = 12SE +/- 87029.51, N = 3SE +/- 457349.76, N = 9SE +/- 55318.04, N = 37053890.1411422458.917163233.3112196067.331. (CC) gcc options: -O2 -std=gnu99 -lm -lz -lcrypt -lrt -lpthread -laio -lc

Sysbench

Test: Memory

StockNew MicrocodeOpenBenchmarking.orgEvents Per Second, More Is BetterSysbench 2018-07-28Test: MemoryBare MetalVM Guest3M6M9M12M15MSE +/- 132541.95, N = 12SE +/- 139878.10, N = 3SE +/- 188626.26, N = 3SE +/- 113244.97, N = 311764465.1110796572.7911803679.9910580279.091. (CC) gcc options: -pthread -O3 -funroll-loops -ggdb3 -march=core2 -rdynamic -ldl -laio -lm

Sysbench

Test: CPU

StockNew MicrocodeOpenBenchmarking.orgEvents Per Second, More Is BetterSysbench 2018-07-28Test: CPUBare MetalVM Guest13K26K39K52K65KSE +/- 583.55, N = 3SE +/- 5.72, N = 3SE +/- 296.24, N = 3SE +/- 11.32, N = 358755.6551676.0959370.5551662.131. (CC) gcc options: -pthread -O3 -funroll-loops -ggdb3 -march=core2 -rdynamic -ldl -laio -lm

Timed Linux Kernel Compilation

Time To Compile

StockNew MicrocodeOpenBenchmarking.orgSeconds, Fewer Is BetterTimed Linux Kernel Compilation 4.18Time To CompileBare MetalVM Guest918273645SE +/- 1.08, N = 12SE +/- 0.41, N = 12SE +/- 0.50, N = 12SE +/- 0.41, N = 1233.7037.2133.4036.90

Timed LLVM Compilation

Time To Compile

StockNew MicrocodeOpenBenchmarking.orgSeconds, Fewer Is BetterTimed LLVM Compilation 6.0.1Time To CompileBare MetalVM Guest50100150200250169.53208.78171.02208.59

Tinymembench

Standard Memset

StockNew MicrocodeOpenBenchmarking.orgMB/s, More Is BetterTinymembench 2018-05-28Standard MemsetBare MetalVM Guest2K4K6K8K10K9298.208980.209151.701. (CC) gcc options: -O2 -lm

TTSIOD 3D Renderer

Phong Rendering With Soft-Shadow Mapping

StockNew MicrocodeOpenBenchmarking.orgFPS, More Is BetterTTSIOD 3D Renderer 2.3bPhong Rendering With Soft-Shadow MappingBare MetalVM Guest160320480640800SE +/- 10.35, N = 3SE +/- 6.63, N = 3SE +/- 6.67, N = 3SE +/- 3.91, N = 3742.68673.74731.60668.111. (CXX) g++ options: -O3 -fomit-frame-pointer -ffast-math -mtune=native -flto -msse -mrecip -mfpmath=sse -msse2 -mssse3 -lSDL -fopenmp -fwhole-program -lstdc++

x265

H.265 Video Encoding

StockNew MicrocodeOpenBenchmarking.orgFrames Per Second, More Is Betterx265 2.8H.265 Video EncodingBare MetalVM Guest3691215SE +/- 0.06, N = 3SE +/- 0.05, N = 3SE +/- 0.01, N = 3SE +/- 0.04, N = 310.3110.3610.3210.431. (CXX) g++ options: -O3 -rdynamic -lpthread -lrt -ldl


Phoronix Test Suite v10.8.4