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&gru&sor.

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

stress-ng: Semaphoresstress-ng: Socket Activitystress-ng: Context Switchingstress-ng: System V Message Passingsysbench: Memorysysbench: CPUttsiod-renderer: Phong Rendering With Soft-Shadow Mappingx265: H.265 Video Encodingcompilebench: Compilecompilebench: Initial Createcompilebench: Read Compiled Treemysqlslap: 32redis: GETredis: SETnginx: Static Web Page Servingpgbench: Buffer Test - Normal Load - Read Onlybuild-linux-kernel: Time To Compilebuild-llvm: Time To Compileprimesieve: 1e12 Prime Number Generationhackbench: 32 - Processblender: Barbershop - CPU-OnlyStockNew Microcode Bare Metal VM Guest Bare Metal VM Guest1831962.433454.6322234776.327053890.1411764465.1158755.65742.6810.311712.79501.792469.932462142971.111656081.4624591.86585224.7933.70169.538.6235.73374.05600043.1314127.9512704770.9311422458.9110796572.7951676.09673.7410.361467.65460.822351.281311999876.291455207.3627078.58384280.7037.21208.7824.6271.54423.311890399.793313.1222976365.087163233.3111803679.9959370.55731.6010.321698.50487.432478.362212059062.251688379.9223745.74588527.6833.40171.028.6436.73373.98602511.2813024.2712082482.7112196067.3310580279.0951662.13668.1110.431489.48460.992281.891521997504.971393755.4027448.91377789.3536.90208.5924.4173.79420.12OpenBenchmarking.org

Stress-NG

Test: Semaphores

New MicrocodeStockOpenBenchmarking.orgBogo Ops/s, More Is BetterStress-NG 0.07.26Test: SemaphoresBare MetalVM Guest400K800K1200K1600K2000KSE +/- 26014.39, N = 6SE +/- 2331.55, N = 3SE +/- 29092.76, N = 3SE +/- 925.56, N = 31890399.79602511.281831962.43600043.131. (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 ActivityVM GuestBare Metal3K6K9K12K15KSE +/- 151.62, N = 3SE +/- 853.24, N = 12SE +/- 207.14, N = 3SE +/- 943.03, N = 1214127.953454.6313024.273313.121. (CC) gcc options: -O2 -std=gnu99 -lm -lz -lcrypt -lrt -lpthread -laio -lc

Stress-NG

Test: Context Switching

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

Stress-NG

Test: System V Message Passing

New MicrocodeStockOpenBenchmarking.orgBogo Ops/s, More Is BetterStress-NG 0.07.26Test: System V Message PassingVM GuestBare Metal3M6M9M12M15MSE +/- 55318.04, N = 3SE +/- 457349.76, N = 9SE +/- 87029.51, N = 3SE +/- 342053.14, N = 1212196067.337163233.3111422458.917053890.141. (CC) gcc options: -O2 -std=gnu99 -lm -lz -lcrypt -lrt -lpthread -laio -lc

Sysbench

Test: Memory

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

Sysbench

Test: CPU

New MicrocodeStockOpenBenchmarking.orgEvents Per Second, More Is BetterSysbench 2018-07-28Test: CPUBare MetalVM Guest13K26K39K52K65KSE +/- 296.24, N = 3SE +/- 11.32, N = 3SE +/- 583.55, N = 3SE +/- 5.72, N = 359370.5551662.1358755.6551676.091. (CC) gcc options: -pthread -O3 -funroll-loops -ggdb3 -march=core2 -rdynamic -ldl -laio -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

New MicrocodeStockOpenBenchmarking.orgFrames Per Second, More Is Betterx265 2.8H.265 Video EncodingVM GuestBare Metal3691215SE +/- 0.04, N = 3SE +/- 0.01, N = 3SE +/- 0.05, N = 3SE +/- 0.06, N = 310.4310.3210.3610.311. (CXX) g++ options: -O3 -rdynamic -lpthread -lrt -ldl

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

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

Tinymembench

Standard Memset

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

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

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

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

NGINX Benchmark

Static Web Page Serving

New MicrocodeStockOpenBenchmarking.orgRequests Per Second, More Is BetterNGINX Benchmark 1.9.9Static Web Page ServingVM GuestBare Metal6K12K18K24K30KSE +/- 83.37, N = 3SE +/- 114.41, N = 3SE +/- 1495.37, N = 3SE +/- 140.64, N = 327448.9123745.7427078.5824591.861. (CC) gcc options: -lpthread -lcrypt -lcrypto -lz -O3 -march=native

PostgreSQL pgbench

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

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

Timed Linux Kernel Compilation

Time To Compile

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

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

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

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

Blender

Blend File: Barbershop - Compute: CPU-Only

New MicrocodeStockOpenBenchmarking.orgSeconds, Fewer Is BetterBlender 2.79aBlend File: Barbershop - Compute: CPU-OnlyBare MetalVM Guest90180270360450373.98420.12374.05423.31


Phoronix Test Suite v10.8.5