Hello,
I have following problem...
Host OS: openSUSE 13.1 x86_64 Guest OS: Windows 10 Pro 64-Bit (build 10240 and 10586)
$ qemu-system-x86_64 --version QEMU emulator version 2.5.93 (Virtualization / openSUSE_13.1), Copyright (c) 2003-2008 Fabrice Bellard
QEMU output with SeaBIOS 1.9.0 and above: $ qemu-system-x86_64 -bios ../qemu/seabios-1.9.2/out/bios.bin -machine pc,accel=kvm -cpu core2duo -m 2048 -smp 2 -hda win10.img -boot c KVM internal error. Suberror: 1 emulation failure EAX=00000200 EBX=0000aa55 ECX=00000007 EDX=00000080 ESI=00007be4 EDI=00000800 EBP=000007be ESP=00007bfc EIP=000000a4 EFL=00003206 [-----P-] CPL=0 II=0 A20=1 SMM=0 HLT=0 ES =0000 00000000 ffffffff 00809300 CS =07c0 00007c00 ffffffff 00809b00 SS =0000 00000000 ffffffff 00809300 DS =0000 00000000 ffffffff 00809300 FS =0000 00000000 ffffffff 00809300 GS =0000 00000000 ffffffff 00809300 LDT=0000 00000000 0000ffff 00008200 TR =0000 00000000 0000ffff 00008b00 GDT= 00000000 00000000 IDT= 00000000 000003ff CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000 DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000 DR6=00000000ffff0ff0 DR7=0000000000000400 EFER=0000000000000000 Code=18 68 1a 00 b4 48 8a 16 0e 00 8b f4 16 1f cd 13 9f 83 c4 18 <9e> 58 1f 72 e1 3b 06 0b 00 75 db a3 0f 00 c1 2e 0f 00 04 1e 5a 33 db b9 00 20 2b c8 66 ff
Thanks, Johannes
On Tue, Apr 26, 2016 at 10:10:04PM +0200, Johannes Krottmayer wrote:
I have following problem...
To report a SeaBIOS issue, the SeaBIOS log is needed. Please see http://www.seabios.org/Debugging#Diagnostic_information
[...]
QEMU output with SeaBIOS 1.9.0 and above:
Did it work with some prior version of SeaBIOS?
-Kevin
Am 2016-04-26 um 22:38 schrieb Kevin O'Connor: [...]
To report a SeaBIOS issue, the SeaBIOS log is needed. Please see http://www.seabios.org/Debugging#Diagnostic_information
$ qemu-system-x86_64 -chardev stdio,id=seabios -device isa-debugcon,iobase=0x402,chardev=seabios -bios ../qemu/seabios-1.9.2/out/bios.bin -machine pc,accel=kvm -cpu core2duo -m 2048 -smp 2 -hda win10.img -boot c SeaBIOS (version 1.9.2-20160426_212753-zeus) BUILD: gcc: (SUSE Linux) 4.8.5 binutils: (GNU Binutils; devel:gcc / openSUSE_13.1) 2.26.0.20160318-244 No Xen hypervisor found. Running on QEMU (i440fx) Running on KVM RamSize: 0x80000000 [cmos] Relocating init from 0x000dc1d0 to 0x7ffad7f0 (size 75648) Found QEMU fw_cfg QEMU fw_cfg DMA interface supported RamBlock: addr 0x0000000000000000 len 0x0000000080000000 [e820] Moving pm_base to 0x600 === PCI bus & bridge init === PCI: pci_bios_init_bus_rec bus = 0x0 === PCI device probing === Found 6 PCI devices (max PCI bus is 00) === PCI new allocation pass #1 === PCI: check devices === PCI new allocation pass #2 === PCI: IO: c000 - c04f PCI: 32: 0000000080000000 - 00000000fec00000 PCI: map device bdf=00:03.0 bar 1, addr 0000c000, size 00000040 [io] PCI: map device bdf=00:01.1 bar 4, addr 0000c040, size 00000010 [io] PCI: map device bdf=00:03.0 bar 6, addr feb80000, size 00040000 [mem] PCI: map device bdf=00:03.0 bar 0, addr febc0000, size 00020000 [mem] PCI: map device bdf=00:02.0 bar 6, addr febe0000, size 00010000 [mem] PCI: map device bdf=00:02.0 bar 2, addr febf0000, size 00001000 [mem] PCI: map device bdf=00:02.0 bar 0, addr fd000000, size 01000000 [prefmem] PCI: init bdf=00:00.0 id=8086:1237 PCI: init bdf=00:01.0 id=8086:7000 PIIX3/PIIX4 init: elcr=00 0c PCI: init bdf=00:01.1 id=8086:7010 PCI: init bdf=00:01.3 id=8086:7113 Using pmtimer, ioport 0x608 PCI: init bdf=00:02.0 id=1234:1111 PCI: init bdf=00:03.0 id=8086:100e PCI: Using 00:02.0 for primary VGA handle_smp: apic_id=1 Found 2 cpu(s) max supported 2 cpu(s) Copying PIR from 0x7ffbfcb8 to 0x000f6cc0 Copying MPTABLE from 0x00006dfc/7ffa47f0 to 0x000f6bc0 Copying SMBIOS entry point from 0x00006dfc to 0x000f69d0 Scan for VGA option rom Running option rom at c000:0003 Start SeaVGABIOS (version rel-1.9.1-0-gb3ef39f-prebuilt.qemu-project.org) VGABUILD: gcc: (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 202388] binutils: (GNU Binutils; openSUSE 13.1) 2.23.2 enter vga_post: a=00000010 b=0000ffff c=00000000 d=0000ffff ds=0000 es=f000 ss=0000 si=00000000 di=00007090 bp=00000000 sp=00006d0e cs=f000 ip=d27b f=0000 VBE DISPI: bdf 00:02.0, bar 0 VBE DISPI: lfb_addr=fd000000, size 16 MB Attempting to allocate VGA stack via pmm call to f000:d332 pmm call arg1=0 VGA stack allocated at eded0 Turning on vga text mode console set VGA mode 3 SeaBIOS (version 1.9.2-20160426_212753-zeus) All threads complete. Found 1 lpt ports Found 1 serial ports Searching bootorder for: /pci@i0cf8/isa@1/fdc@03f0/floppy@0 ATA controller 1 at 1f0/3f4/0 (irq 14 dev 9) ATA controller 2 at 170/374/0 (irq 15 dev 9) PS2 keyboard initialized ata0-0: QEMU HARDDISK ATA-7 Hard-Disk (40960 MiBytes) Searching bootorder for: /pci@i0cf8/*@1,1/drive@0/disk@0 DVD/CD [ata1-0: QEMU DVD-ROM ATAPI-4 DVD/CD] Searching bootorder for: /pci@i0cf8/*@1,1/drive@1/disk@0 All threads complete. Scan for option roms Running option rom at c980:0003 pmm call arg1=1 pmm call arg1=0 pmm call arg1=1 pmm call arg1=0 Searching bootorder for: /pci@i0cf8/*@3 Searching bootorder for: /rom@genroms/kvmvapic.bin Searching bootorder for: HALT drive 0x000f6900: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 s=83886080 Running option rom at ca80:0003 Space available for UMB: cd000-ed000, f6540-f68a0 Returned 131072 bytes of ZoneHigh e820 map has 7 items: 0: 0000000000000000 - 000000000009fc00 = 1 RAM 1: 000000000009fc00 - 00000000000a0000 = 2 RESERVED 2: 00000000000f0000 - 0000000000100000 = 2 RESERVED 3: 0000000000100000 - 000000007ffe0000 = 1 RAM 4: 000000007ffe0000 - 0000000080000000 = 2 RESERVED 5: 00000000feffc000 - 00000000ff000000 = 2 RESERVED 6: 00000000fffc0000 - 0000000100000000 = 2 RESERVED enter handle_19: NULL Booting from Hard Disk... Booting from 0000:7c00 KVM internal error. Suberror: 1 emulation failure EAX=00000200 EBX=0000aa55 ECX=00000007 EDX=00000080 ESI=00007be4 EDI=00000800 EBP=000007be ESP=00007bfc EIP=000000a4 EFL=00003206 [-----P-] CPL=0 II=0 A20=1 SMM=0 HLT=0 ES =0000 00000000 ffffffff 00809300 CS =07c0 00007c00 ffffffff 00809b00 SS =0000 00000000 ffffffff 00809300 DS =0000 00000000 ffffffff 00809300 FS =0000 00000000 ffffffff 00809300 GS =0000 00000000 ffffffff 00809300 LDT=0000 00000000 0000ffff 00008200 TR =0000 00000000 0000ffff 00008b00 GDT= 00000000 00000000 IDT= 00000000 000003ff CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000 DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000 DR6=00000000ffff0ff0 DR7=0000000000000400 EFER=0000000000000000 Code=18 68 1a 00 b4 48 8a 16 0e 00 8b f4 16 1f cd 13 9f 83 c4 18 <9e> 58 1f 72 e1 3b 06 0b 00 75 db a3 0f 00 c1 2e 0f 00 04 1e 5a 33 db b9 00 20 2b c8 66 ff
QEMU output with SeaBIOS 1.9.0 and above:
Did it work with some prior version of SeaBIOS?
Yes. Tested it with the default version (1.7.2.2) of my distribution, 1.8.0, 1.8.1 and version 1.8.2.
Booting from ISO works with all versions.
Thanks, Johannes
On Tue, Apr 26, 2016 at 11:16:20PM +0200, Johannes Krottmayer wrote:
Am 2016-04-26 um 22:38 schrieb Kevin O'Connor: [...]
To report a SeaBIOS issue, the SeaBIOS log is needed. Please see http://www.seabios.org/Debugging#Diagnostic_information
$ qemu-system-x86_64 -chardev stdio,id=seabios -device isa-debugcon,iobase=0x402,chardev=seabios -bios ../qemu/seabios-1.9.2/out/bios.bin -machine pc,accel=kvm -cpu core2duo -m 2048 -smp 2 -hda win10.img -boot c SeaBIOS (version 1.9.2-20160426_212753-zeus)
[...]
Booting from Hard Disk... Booting from 0000:7c00 KVM internal error. Suberror: 1 emulation failure
It appears the fault is occurring in the OS bootloader, not in the SeaBIOS code.
[...]
QEMU output with SeaBIOS 1.9.0 and above:
Did it work with some prior version of SeaBIOS?
Yes. Tested it with the default version (1.7.2.2) of my distribution, 1.8.0, 1.8.1 and version 1.8.2.
It's odd that it works with a different SeaBIOS version. You could try bisecting between 1.8.0 and 1.9.2 to see what change the crash starts at - but be aware that random differences in the SeaBIOS binary might be tickling the underlying issue.
You could also try reporting to the kvm list - they'll know how to interpret the cpu dump.
-Kevin
On 26/04/2016 23:41, Kevin O'Connor wrote:
It appears the fault is occurring in the OS bootloader, not in the SeaBIOS code.
[...]
> QEMU output with SeaBIOS 1.9.0 and above:
Did it work with some prior version of SeaBIOS?
Yes. Tested it with the default version (1.7.2.2) of my distribution, 1.8.0, 1.8.1 and version 1.8.2.
It's odd that it works with a different SeaBIOS version. You could try bisecting between 1.8.0 and 1.9.2 to see what change the crash starts at - but be aware that random differences in the SeaBIOS binary might be tickling the underlying issue.
I second this, but the root cause is that you need a new kernel or a new processor. Your processor doesn't know how to run code running in "big real mode" (you can see that you are in big real mode from the "ffffffff" in the dump on the lines between "ES" and "GS"). Your kernel has to emulate that code instruction by instruction, but it doesn't know how to emulate one particular instruction used by Windows, sahf. This instruction was added to kernel 3.13 in the following commit:
commit 98f73630f96f1a6d8c845b8b3e5f9ae532cf82d1 Author: Paolo Bonzini pbonzini@redhat.com Date: Thu Oct 31 11:19:42 2013 +0100
KVM: x86: emulate SAHF instruction
Yet another instruction that we fail to emulate, this time found in Windows 2008R2 32-bit.
Reviewed-by: Gleb Natapov gleb@redhat.com Signed-off-by: Paolo Bonzini pbonzini@redhat.com
You could also try reporting to the kvm list - they'll know how to interpret the cpu dump.
FWIW, the code dump disassembles to the following:
... 00000007 681A00 push word 0x1a 0000000A B448 mov ah,0x48 0000000C 8A160E00 mov dl,[0xe] 00000010 8BF4 mov si,sp 00000012 16 push ss 00000013 1F pop ds 00000014 CD13 int 0x13 00000016 9F lahf 00000017 83C418 add sp,byte +0x18 0000001A 9E sahf 0000001B 58 pop ax 0000001C 1F pop ds 0000001D 72E1 jc 0 0000001F 3B060B00 cmp ax,[0xb] 00000023 75DB jnz 0 00000025 A30F00 mov [0xf],ax 00000028 C12E0F0004 shr word [0xf],byte 0x4 0000002D 1E push ds 0000002E 5A pop dx ...
Thanks,
Paolo