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&grr&sor&rro.

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

mysqlslap: 32pgbench: Buffer Test - Normal Load - Read Onlycompilebench: Compilebuild-linux-kernel: Time To Compileblender: Barbershop - CPU-Onlynginx: Static Web Page Servinghackbench: 32 - Processstress-ng: Context Switchingstress-ng: Socket Activitystress-ng: System V Message Passingbuild-llvm: Time To Compilex265: H.265 Video Encodingstress-ng: Semaphoresredis: GETredis: SETttsiod-renderer: Phong Rendering With Soft-Shadow Mappingprimesieve: 1e12 Prime Number Generationsysbench: Memorysysbench: CPUcompilebench: Read Compiled Treecompilebench: Initial CreateStockNew Microcode Bare Metal VM Guest Bare Metal VM Guest246585224.791712.7933.70374.0524591.8635.7322234776.323454.637053890.14169.5310.311831962.432142971.111656081.46742.688.6211764465.1158755.652469.93501.79131384280.701467.6537.21423.3127078.5871.5412704770.9314127.9511422458.91208.7810.36600043.131999876.291455207.36673.7424.6210796572.7951676.092351.28460.82221588527.681698.5033.40373.9823745.7436.7322976365.083313.127163233.31171.0210.321890399.792059062.251688379.92731.608.6411803679.9959370.552478.36487.43152377789.351489.4836.90420.1227448.9173.7912082482.7113024.2712196067.33208.5910.43602511.281997504.971393755.40668.1124.4110580279.0951662.132281.89460.99OpenBenchmarking.org

MariaDB

Clients: 32

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

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 OnlyVM GuestBare Metal130K260K390K520K650KSE +/- 3308.21, N = 3SE +/- 823.94, N = 3SE +/- 2865.20, N = 3SE +/- 2323.77, N = 3377789.35588527.68384280.70585224.791. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm

Compile Bench

Test: Compile

StockNew MicrocodeOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: CompileVM GuestBare Metal400800120016002000SE +/- 11.24, N = 3SE +/- 8.67, N = 3SE +/- 4.45, N = 3SE +/- 2.32, N = 31467.651712.791489.481698.50

Timed Linux Kernel Compilation

Time To Compile

StockNew MicrocodeOpenBenchmarking.orgSeconds, Fewer Is BetterTimed Linux Kernel Compilation 4.18Time To CompileVM GuestBare Metal918273645SE +/- 0.41, N = 12SE +/- 1.08, N = 12SE +/- 0.41, N = 12SE +/- 0.50, N = 1237.2133.7036.9033.40

Blender

Blend File: Barbershop - Compute: CPU-Only

StockNew MicrocodeOpenBenchmarking.orgSeconds, Fewer Is BetterBlender 2.79aBlend File: Barbershop - Compute: CPU-OnlyVM GuestBare Metal90180270360450423.31374.05420.12373.98

NGINX Benchmark

Static Web Page Serving

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

Tinymembench

Standard Memset

StockNew MicrocodeOpenBenchmarking.orgMB/s, More Is BetterTinymembench 2018-05-28Standard MemsetVM GuestBare Metal2K4K6K8K10K8980.209298.209151.701. (CC) gcc options: -O2 -lm

Hackbench

Count: 32 - Type: Process

New MicrocodeStockOpenBenchmarking.orgSeconds, Fewer Is BetterHackbenchCount: 32 - Type: ProcessVM GuestBare Metal1632486480SE +/- 0.53, N = 3SE +/- 0.69, N = 3SE +/- 0.25, N = 3SE +/- 0.99, N = 1273.7936.7371.5435.731. (CC) gcc options: -lpthread

Stress-NG

Test: Context Switching

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

Stress-NG

Test: Socket Activity

New MicrocodeStockOpenBenchmarking.orgBogo Ops/s, More Is BetterStress-NG 0.07.26Test: Socket ActivityBare MetalVM Guest3K6K9K12K15KSE +/- 943.03, N = 12SE +/- 207.14, N = 3SE +/- 853.24, N = 12SE +/- 151.62, N = 33313.1213024.273454.6314127.951. (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

Timed LLVM Compilation

Time To Compile

StockNew MicrocodeOpenBenchmarking.orgSeconds, Fewer Is BetterTimed LLVM Compilation 6.0.1Time To CompileVM GuestBare Metal50100150200250208.78169.53208.59171.02

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

Stress-NG

Test: Semaphores

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

Redis

Test: GET

New MicrocodeStockOpenBenchmarking.orgRequests Per Second, More Is BetterRedis 4.0.8Test: GETVM GuestBare Metal500K1000K1500K2000K2500KSE +/- 51272.68, N = 12SE +/- 6166.42, N = 3SE +/- 67289.89, N = 12SE +/- 42615.86, N = 121997504.972059062.251999876.292142971.111. (CC) gcc options: -ggdb -rdynamic -lm -ldl -pthread

Redis

Test: SET

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

TTSIOD 3D Renderer

Phong Rendering With Soft-Shadow Mapping

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

Primesieve

1e12 Prime Number Generation

StockNew MicrocodeOpenBenchmarking.orgSeconds, Fewer Is BetterPrimesieve 7.11e12 Prime Number GenerationVM GuestBare Metal612182430SE +/- 0.15, N = 3SE +/- 0.03, N = 3SE +/- 0.25, N = 3SE +/- 0.02, N = 324.628.6224.418.641. (CXX) g++ options: -O3 -lpthread

Sysbench

Test: Memory

New MicrocodeStockOpenBenchmarking.orgEvents Per Second, More Is BetterSysbench 2018-07-28Test: MemoryVM GuestBare Metal3M6M9M12M15MSE +/- 113244.97, N = 3SE +/- 188626.26, N = 3SE +/- 139878.10, N = 3SE +/- 132541.95, N = 1210580279.0911803679.9910796572.7911764465.111. (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: CPUVM GuestBare Metal13K26K39K52K65KSE +/- 11.32, N = 3SE +/- 296.24, N = 3SE +/- 5.72, N = 3SE +/- 583.55, N = 351662.1359370.5551676.0958755.651. (CC) gcc options: -pthread -O3 -funroll-loops -ggdb3 -march=core2 -rdynamic -ldl -laio -lm

Compile Bench

Test: Read Compiled Tree

New MicrocodeStockOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: Read Compiled TreeVM GuestBare Metal5001000150020002500SE +/- 35.39, N = 3SE +/- 27.68, N = 3SE +/- 12.12, N = 3SE +/- 12.91, N = 32281.892478.362351.282469.93

Compile Bench

Test: Initial Create

StockNew MicrocodeOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: Initial CreateVM GuestBare Metal110220330440550SE +/- 15.44, N = 3SE +/- 3.51, N = 3SE +/- 5.36, N = 3SE +/- 1.19, N = 3460.82501.79460.99487.43


Phoronix Test Suite v10.8.5