Kernel panic on current amd64 running under Ubuntu KVM (patch included)
Hello bugs@, I'm have problem with run OpenBSD current amd64 as guest in KVM hypervisor on Ubuntu server with AMD CPU. Host OS: Ubuntu 12.04 TLS Host CPU: AMD Phenom(tm) II X4 975 Processor stepping 03 Host kernel: Linux M720-US3 3.2.0-43-generic #68-Ubuntu SMP Wed May 15 03:33:33 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux qemu-kvm: 1.2.0+dfsg-0~12.04~ppa0 seabios: 1.7.0-1 OpenBSD crash: acpiprt0 at acpi0: bus 0 (PCI0) mpbios0 at bios0: Intel MP Specification 1.4 cpu0 at mainbus0: apid 0 (boot processor) cpu0: AMD Phenom(tm) 9550 Quad-Core Processor, 3600.53 MHz cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CF LUSH,MMX,FXSR,SSE,SSE2,SSE3,CX16,POPCNT,NXE,MMXX,FFXSR,LONG,3DNOW2,3DNOW,LAHF,CM PLEG,SVM,AMCR8,ABM,SSE4A,MASSE,3DNOWP cpu0: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 1 6-way L2 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 aesni_setup+0x1a0: rdmsr aesni_setup() at aesni setup+0x1a0 amd64_errata() at amd64 errata+0xc9 identifycpu() at identifycpu+0x729 cpu attach() at cpu_attach+0x2ce config_attach() at config_attach+0x1d4 mpbios_cpu() at mpbios_cpu+0x5b mpbios_scan() at mpbios_scan+0x355 config_attach() at config_attach+0x1d4 bios_attach() at bios_attach+0x296 config_attach() at config_attach+0x1d4 end trace frame: 0x81de9e30, count: 0 ddb{0} ddb{0} trace aesni_setup() at aesni_setup+0x1a0 amd64_errata() at amd64_errata+0xc9 identifycpu() at identifycpu+0x729 cpu_attach() at cpu_attach+0x2ce config_attach() at config_attach+0x1d4 mpbios_cpu() at mpbios_cpu+0x5b mpbios_scan() at mpbios_scan+0x355 config_attach() at config_attach+0x1d4 bios_attach() at bios_attach+0x296 config_attach() at config_attach+0x1d4 mainbus_attach() at mainbus_attach+0x5b config_attach() at config_attach+0x1d4 cpu_configure() at cpu_configure+0x17 main() at main+0x3f5 end trace frame: 0x0, count: -14 ddb{0} ddb{0}ps PID PPID PGRP UID S FLAGS WAIT COMMAND *0 -10 0 7 0x200 swapper ddb{0} After ported and applied patch from NetBSD ( http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/x86/x86/errata.c.diff?r1=1.20r2=1.21only_with_tag=MAINf=h ), OpenBSD run without crash: OpenBSD 5.3-current (GENERIC.MP) #0: Mon May 20 02:56:29 EEST 2013 root@buildbox.local:/usr/src/sys/arch/amd64/compile/GENERIC.MP real mem = 1056956416 (1007MB) avail mem = 1021165568 (973MB) mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.4 @ 0xfd970 (11 entries) bios0: vendor Bochs version Bochs date 01/01/2007 bios0: Bochs Bochs acpi0 at bios0: rev 0 acpi0: sleep states S3 S4 S5 acpi0: tables DSDT FACP SSDT APIC HPET SSDT acpi0: wakeup devices acpitimer0 at acpi0: 3579545 Hz, 24 bits acpimadt0 at acpi0 addr 0xfee0: PC-AT compat acpihpet0 at acpi0: 1 Hz acpiprt0 at acpi0: bus 0 (PCI0) mpbios0 at bios0: Intel MP Specification 1.4 cpu0 at mainbus0: apid 0 (boot processor) cpu0: AMD Phenom(tm) 9550 Quad-Core Processor, 3600.47 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,CX16,POPCNT,RAZ,NXE,MMXX,FFXSR,LONG,3DNOW2,3DNOW,LAHF,CMPLEG,SVM,AMCR8,ABM,SSE4A,MASSE,3DNOWP cpu0: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 16-way L2 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 cpu0: apic clock running at 999MHz cpu1 at mainbus0: apid 1 (application processor) cpu1: AMD Phenom(tm) 9550 Quad-Core Processor, 3600.30 MHz cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SSE3,CX16,POPCNT,RAZ,NXE,MMXX,FFXSR,LONG,3DNOW2,3DNOW,LAHF,CMPLEG,SVM,AMCR8,ABM,SSE4A,MASSE,3DNOWP cpu1: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 16-way L2 cache cpu1: ITLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped cpu1: DTLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped mpbios0: bus 0 is type PCI mpbios0: bus 1 is type ISA ioapic0 at mainbus0: apid 2 pa 0xfec0, version 11, 24 pins ioapic0: misconfigured as apic 0, remapped to apid 2 pci0 at mainbus0 bus 0 pchb0 at pci0 dev 0 function 0 Intel 82441FX rev 0x02 pcib0 at pci0 dev 1 function 0 Intel 82371SB ISA rev 0x00 pciide0 at pci0 dev 1 function 1 Intel 82371SB IDE rev 0x00: DMA, channel 0 wired to compatibility, channel 1 wired to compatibility pciide0: channel 0 disabled (no drives) atapiscsi0 at pciide0 channel 1 drive 0 scsibus0 at atapiscsi0: 2 targets cd0 at scsibus0 targ 0 lun 0: QEMU, QEMU DVD-ROM, 1.0 ATAPI 5/cdrom removable cd0(pciide0:1:0): using PIO mode 4, DMA mode 2 uhci0 at pci0 dev 1 function 2 Intel 82371SB USB rev 0x01: apic 2 int 11 piixpm0 at pci0 dev 1 function 3 Intel 82371AB Power rev 0x03: apic 2 int 9 iic0 at piixpm0 iic0: addr
Re: Kernel panic on current amd64 running under Ubuntu KVM (patch included)
patch_amd64errata.diff Index: amd64/amd64/amd64errata.c === RCS file: /cvs/src/sys/arch/amd64/amd64/amd64errata.c,v retrieving revision 1.3 diff -u -p -u -p -r1.3 amd64errata.c --- amd64/amd64/amd64errata.c27 Mar 2012 05:59:46 -1.3 +++ amd64/amd64/amd64errata.c19 May 2013 23:48:11 - @@ -293,6 +293,9 @@ amd64_errata(struct cpu_info *ci) int found = 0; int corrected = 0; +if (ci-ci_feature_eflags CPUIDECX_RAZ) +return; + CPUID(0x8001, code, dummy, dummy, dummy); for (i = 0; ; i += 2) { Index: amd64/amd64/identcpu.c === RCS file: /cvs/src/sys/arch/amd64/amd64/identcpu.c,v retrieving revision 1.47 diff -u -p -u -p -r1.47 identcpu.c --- amd64/amd64/identcpu.c6 May 2013 04:32:12 -1.47 +++ amd64/amd64/identcpu.c19 May 2013 23:48:11 - @@ -129,6 +129,7 @@ const struct { { CPUIDECX_AVX,AVX }, { CPUIDECX_F16C,F16C }, { CPUIDECX_RDRAND,RDRAND }, +{ CPUIDECX_RAZ,RAZ } }, cpu_ecpuid_ecxfeatures[] = { { CPUIDECX_LAHF,LAHF }, { CPUIDECX_CMPLEG,CMPLEG }, Index: amd64/include/specialreg.h === RCS file: /cvs/src/sys/arch/amd64/include/specialreg.h,v retrieving revision 1.25 diff -u -p -u -p -r1.25 specialreg.h --- amd64/include/specialreg.h6 May 2013 04:32:12 -1.25 +++ amd64/include/specialreg.h19 May 2013 23:48:11 - @@ -158,6 +158,7 @@ #defineCPUIDECX_AVX0x1000/* Advanced Vector Extensions */ #defineCPUIDECX_F16C0x2000/* 16bit fp conversion */ #defineCPUIDECX_RDRAND0x4000/* RDRAND instruction */ +#defineCPUIDECX_RAZ0x8000/* RAZ. Indicates guest state. */ /* * Structured Extended Feature Flags Parameters (CPUID function 0x7, leaf 0)
Re: Kernel panic on current amd64 running under Ubuntu KVM (patch included)
$ cat patch_amd64errata.diff Index: amd64/amd64/amd64errata.c === RCS file: /cvs/src/sys/arch/amd64/amd64/amd64errata.c,v retrieving revision 1.3 diff -u -p -u -p -r1.3 amd64errata.c --- amd64/amd64/amd64errata.c27 Mar 2012 05:59:46 -1.3 +++ amd64/amd64/amd64errata.c19 May 2013 23:48:11 - @@ -293,6 +293,9 @@ amd64_errata(struct cpu_info *ci) int found = 0; int corrected = 0; +if (ci-ci_feature_eflags CPUIDECX_RAZ) +return; + CPUID(0x8001, code, dummy, dummy, dummy); for (i = 0; ; i += 2) { Index: amd64/amd64/identcpu.c === RCS file: /cvs/src/sys/arch/amd64/amd64/identcpu.c,v retrieving revision 1.47 diff -u -p -u -p -r1.47 identcpu.c --- amd64/amd64/identcpu.c6 May 2013 04:32:12 -1.47 +++ amd64/amd64/identcpu.c19 May 2013 23:48:11 - @@ -129,6 +129,7 @@ const struct { { CPUIDECX_AVX,AVX }, { CPUIDECX_F16C,F16C }, { CPUIDECX_RDRAND,RDRAND }, +{ CPUIDECX_RAZ,RAZ } }, cpu_ecpuid_ecxfeatures[] = { { CPUIDECX_LAHF,LAHF }, { CPUIDECX_CMPLEG,CMPLEG }, Index: amd64/include/specialreg.h === RCS file: /cvs/src/sys/arch/amd64/include/specialreg.h,v retrieving revision 1.25 diff -u -p -u -p -r1.25 specialreg.h --- amd64/include/specialreg.h6 May 2013 04:32:12 -1.25 +++ amd64/include/specialreg.h19 May 2013 23:48:11 - @@ -158,6 +158,7 @@ #defineCPUIDECX_AVX0x1000/* Advanced Vector Extensions */ #defineCPUIDECX_F16C0x2000/* 16bit fp conversion */ #defineCPUIDECX_RDRAND0x4000/* RDRAND instruction */ +#defineCPUIDECX_RAZ0x8000/* RAZ. Indicates guest state. */ /* * Structured Extended Feature Flags Parameters (CPUID function 0x7, leaf 0) 2013/5/20 Roman Kravchuk kravchuk...@gmail.com Hello bugs@, I'm have problem with run OpenBSD current amd64 as guest in KVM hypervisor on Ubuntu server with AMD CPU. Host OS: Ubuntu 12.04 TLS Host CPU: AMD Phenom(tm) II X4 975 Processor stepping 03 Host kernel: Linux M720-US3 3.2.0-43-generic #68-Ubuntu SMP Wed May 15 03:33:33 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux qemu-kvm: 1.2.0+dfsg-0~12.04~ppa0 seabios: 1.7.0-1 OpenBSD crash: acpiprt0 at acpi0: bus 0 (PCI0) mpbios0 at bios0: Intel MP Specification 1.4 cpu0 at mainbus0: apid 0 (boot processor) cpu0: AMD Phenom(tm) 9550 Quad-Core Processor, 3600.53 MHz cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CF LUSH,MMX,FXSR,SSE,SSE2,SSE3,CX16,POPCNT,NXE,MMXX,FFXSR,LONG,3DNOW2,3DNOW,LAHF,CM PLEG,SVM,AMCR8,ABM,SSE4A,MASSE,3DNOWP cpu0: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 1 6-way L2 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 aesni_setup+0x1a0: rdmsr aesni_setup() at aesni setup+0x1a0 amd64_errata() at amd64 errata+0xc9 identifycpu() at identifycpu+0x729 cpu attach() at cpu_attach+0x2ce config_attach() at config_attach+0x1d4 mpbios_cpu() at mpbios_cpu+0x5b mpbios_scan() at mpbios_scan+0x355 config_attach() at config_attach+0x1d4 bios_attach() at bios_attach+0x296 config_attach() at config_attach+0x1d4 end trace frame: 0x81de9e30, count: 0 ddb{0} ddb{0} trace aesni_setup() at aesni_setup+0x1a0 amd64_errata() at amd64_errata+0xc9 identifycpu() at identifycpu+0x729 cpu_attach() at cpu_attach+0x2ce config_attach() at config_attach+0x1d4 mpbios_cpu() at mpbios_cpu+0x5b mpbios_scan() at mpbios_scan+0x355 config_attach() at config_attach+0x1d4 bios_attach() at bios_attach+0x296 config_attach() at config_attach+0x1d4 mainbus_attach() at mainbus_attach+0x5b config_attach() at config_attach+0x1d4 cpu_configure() at cpu_configure+0x17 main() at main+0x3f5 end trace frame: 0x0, count: -14 ddb{0} ddb{0}ps PID PPID PGRP UID S FLAGS WAIT COMMAND *0 -10 0 7 0x200 swapper ddb{0} After ported and applied patch from NetBSD ( http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/x86/x86/errata.c.diff?r1=1.20r2=1.21only_with_tag=MAINf=h ), OpenBSD run without crash: OpenBSD 5.3-current (GENERIC.MP) #0: Mon May 20 02:56:29 EEST 2013 root@buildbox.local:/usr/src/sys/arch/amd64/compile/GENERIC.MP real mem = 1056956416 (1007MB) avail mem = 1021165568 (973MB) mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.4 @ 0xfd970 (11 entries) bios0: vendor Bochs version Bochs date 01/01/2007 bios0: Bochs Bochs acpi0 at bios0: rev 0 acpi0: sleep states S3 S4 S5 acpi0: tables DSDT FACP SSDT APIC HPET SSDT acpi0: wakeup devices acpitimer0 at acpi0: 3579545 Hz, 24 bits acpimadt0 at acpi0 addr 0xfee0: PC