Wednesday, August 01, 2018

014_amdlfence.patch breaks OpenBSD VMs on AMD systems

After installing the 014_amdlfence patch released yesterday for 6.3, my
OpenBSD VM crashes on boot. It's running under KVM on a Linux box
(Ubuntu 18.04 w/ kernel 4.15) on an AMD Ryzen 7 1700 (microcode 0x8001137).
I suppose this would also happen on vmm(4) and bhyve, however I don't
have any such AMD hosts available for testing.

It occurs both using libvirt's "EPYC" CPU model and using
"host-passthrough" (i.e. no virtual CPU model), but the "core2duo" CPU
model works fine.

I guess not many people are running OpenBSD as a VM, and even less on
AMD hardware. But still, a syspatch leaving the system unable to boot is
probably not a good thing. :)

Kernel output:
>> OpenBSD/amd64 BOOT 3.34
boot>
booting hd0a:/bsd: 8616075+2454544+262168+0+671744
[646904+98+712056+493074]=0xd39630
entry point at 0x1000158
[ using 1852976 bytes of bsd ELF symbol table ]
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
Copyright (c) 1995-2018 OpenBSD. All rights reserved.
https://www.OpenBSD.org

OpenBSD 6.3 (GENERIC.MP) #7: Sun Jul 29 11:43:12 CEST 2018

root@syspatch-63-amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 2130546688 (2031MB)
avail mem = 2058960896 (1963MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.8 @ 0xf6880 (10 entries)
bios0: vendor SeaBIOS version "1.10.2-1ubuntu1" date 04/01/2014
bios0: QEMU Standard PC (i440FX + PIIX, 1996)
acpi0 at bios0: rev 0
acpi0: sleep states S5
acpi0: tables DSDT FACP APIC
acpi0: wakeup devices
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: AMD Ryzen 7 1700 Eight-Core Processor, 2994.73 MHz
cpu0:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SSE3,PCLMUL,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,HV,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,FSGSBASE,BMI1,AVX2,SMEP,BMI2,RDSEED,ADX,SMAP,CLFLUSHOPT,SHA,IBPB,XSAVEOPT,XSAVEC,XGETBV1
cpu0: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB
64b/line 16-way L2 cache, 16MB 64b/line 16-way L3 cache
cpu0: ITLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped
cpu0: DTLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped
kernel: protection fault trap, code=0
Stopped at identifycpu+0x7ad: rdmsr
ddb{0}> trace
identifycpu(ffffffff81a99ff0,ffff800000039400,ffffffff81d40a58,ffff8000210b9000
,ffffffff81d40a60,12ad28e092a02002) at identifycpu+0x7ad
cpu_attach(ffff800000023100,ffffffff81d40a58,ffffffff81a97040,ffff800000039400,
ffff800000039424,12ad28e092a02002) at cpu_attach+0x326
config_attach(0,ffff80000001c744,ffff80000001c718,ffff80000001c744,ffffffff81d4
0a38,ffffffff813ce5d0) at config_attach+0x1d8
acpimadt_attach(ffff800000020400,ffffffff81d40b60,ffffffff81aa84d0,ffff80000003
9b80,ffff800000039ba4,12ad28e092a02002) at acpimadt_attach+0x3be
config_attach(ffffffff81d40b60,ffff800000020400,ffff800000020470,ffff8000000204
60,ffff80000001c700,ffffffff81683350) at config_attach+0x1d8
acpi_attach(ffff800000023180,ffffffff81d40c50,ffffffff81abf0d8,ffff800000020400
,ffff800000020424,12ad28e092a02002) at acpi_attach+0x5c1
config_attach(ffff8000210b7884,ffff800000023180,50,118,ffff8000210b78b0,fffffff
f81256180) at config_attach+0x1d8
bios_attach(ffff800000023100,ffffffff81d40d88,ffffffff81aa2188,ffff800000023180
,ffff8000000231a4,12ad28e092a02002) at bios_attach+0x636
config_attach(ffffffff81d40d88,ffff800000023100,ffffffff81ab0bb0,ffff8000000231
00,ffff800000023124,ffffffff81456d90) at config_attach+0x1d8
mainbus_attach(0,0,12ad28e092a02002,ffffffff81d40db0,ffffffff81d40e20,300000001
0) at mainbus_attach+0x71
config_attach(0,ffffffff819a78b4,ffffffff81ac8fd2,ffffffff81d40e78,b28,0)
at co
nfig_attach+0x1d8
config_rootfound(0,0,0,0,ffffffff81d3a008,12ad28e092a02002) at
config_rootfound
+0xd3
cpu_configure(0,0,ffffffff8141440b,ffffffff81d40ef0,0,0) at
cpu_configure+0x1b
main(0,0,0,12ad28e092a02002,ffffffff814eff28,ffffffff81d40f20) at main+0x4a8
end trace frame: 0x0, count: -14
ddb{0}> ps
PID TID PPID UID S FLAGS WAIT COMMAND
* 0 0 -1 0 7 0x10200 swapper

No comments:

Post a Comment