[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Win2k broken by kvmvapic
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] Win2k broken by kvmvapic |
Date: |
Sun, 7 Oct 2012 18:40:44 +0000 |
On Sun, Oct 7, 2012 at 5:24 PM, Jan Kiszka <address@hidden> wrote:
> On 2012-10-07 17:23, Blue Swirl wrote:
>> Hi,
>>
>> Win2k does not work in HEAD, it resets the machine. I bisected this to
>> 0b57e287138728f72d88b06e69b970c5d745c44a, but that does not look so
>> buggy.
>>
>> Digging deeper, the problem is introduced by kvmvapic:
>> Breakpoint 1, cpu_physical_memory_write_rom (addr=0xca300,
>> buf=0x7fffec66b500 "", len=0x5) at /src/qemu/exec.c:3536
>> 3536 invalidate_and_set_dirty(addr1, l);
>> (gdb) bt
>> #0 cpu_physical_memory_write_rom (addr=0xca300, buf=0x7fffec66b500 "",
>> len=0x5) at /src/qemu/exec.c:3536
>> #1 0x0000000000644089 in apic_sync_vapic (s=0x1a6ba60, sync_type=0x2)
>> at /src/qemu/hw/i386/../apic.c:132
>>
>> It looks like vapic is enabled even with KVM disabled
>
> Which is intentional. The VAPIC is provided in a KVM-independent way to
> the guest. Used to work fine with XP, but I never had my finger on a 2k
> version.
>
>> and this causes
>> chaos. With -global apic.vapic=false Win2k works.
>
> And that means we have a bug somewhere. Can you specify the chaos you
> see in more details? Does your Win2k boot with KVM (and kvmvapic)?
It works with KVM both with and without kvmvapic. There are these
error messages though:
(qemu) Invalid write to memory region kvm-pic
Invalid write to memory region kvm-pic
Here's 'info mtree' output, kvmvapic-rom line may be interesting:
memory
0000000000000000-7ffffffffffffffe (prio 0, RW): system
0000000000000000-000000000fffffff (prio 0, RW): alias ram-below-4g
@pc.ram 0000000000000000-000000000fffffff
00000000000a0000-00000000000bffff (prio 1, RW): alias smram-region
@pci 00000000000a0000-00000000000bffff
00000000000c0000-00000000000c3fff (prio 1, R-): alias pam-rom
@pc.ram 00000000000c0000-00000000000c3fff
00000000000c4000-00000000000c7fff (prio 1, R-): alias pam-rom
@pc.ram 00000000000c4000-00000000000c7fff
00000000000c8000-00000000000cbfff (prio 1, R-): alias pam-rom
@pc.ram 00000000000c8000-00000000000cbfff
00000000000ca000-00000000000ccfff (prio 1000, RW): alias
kvmvapic-rom @pc.ram 00000000000ca000-00000000000ccfff
00000000000cc000-00000000000cffff (prio 1, R-): alias pam-rom
@pc.ram 00000000000cc000-00000000000cffff
00000000000d0000-00000000000d3fff (prio 1, RW): alias pam-ram
@pc.ram 00000000000d0000-00000000000d3fff
00000000000d4000-00000000000d7fff (prio 1, RW): alias pam-ram
@pc.ram 00000000000d4000-00000000000d7fff
00000000000d8000-00000000000dbfff (prio 1, RW): alias pam-ram
@pc.ram 00000000000d8000-00000000000dbfff
00000000000dc000-00000000000dffff (prio 1, RW): alias pam-ram
@pc.ram 00000000000dc000-00000000000dffff
00000000000e0000-00000000000e3fff (prio 1, RW): alias pam-ram
@pc.ram 00000000000e0000-00000000000e3fff
00000000000e4000-00000000000e7fff (prio 1, RW): alias pam-ram
@pc.ram 00000000000e4000-00000000000e7fff
00000000000e8000-00000000000ebfff (prio 1, RW): alias pam-ram
@pc.ram 00000000000e8000-00000000000ebfff
00000000000ec000-00000000000effff (prio 1, RW): alias pam-ram
@pc.ram 00000000000ec000-00000000000effff
00000000000f0000-00000000000fffff (prio 1, R-): alias pam-rom
@pc.ram 00000000000f0000-00000000000fffff
0000000010000000-00000000ffffffff (prio 0, RW): alias pci-hole @pci
0000000010000000-00000000ffffffff
00000000fec00000-00000000fec00fff (prio 0, RW): kvm-ioapic
00000000fed00000-00000000fed003ff (prio 0, RW): hpet
00000000fee00000-00000000feefffff (prio 0, RW): kvm-apic-msi
0000000100000000-40000000ffffffff (prio 0, RW): alias pci-hole64
@pci 0000000100000000-40000000ffffffff
I/O
0000000000000000-000000000000ffff (prio 0, RW): io
0000000000000020-0000000000000021 (prio 0, RW): kvm-pic
0000000000000040-0000000000000043 (prio 0, RW): kvm-pit
0000000000000060-0000000000000060 (prio 0, RW): i8042-data
0000000000000061-0000000000000061 (prio 0, RW): elcr
0000000000000064-0000000000000064 (prio 0, RW): i8042-cmd
0000000000000070-0000000000000071 (prio 0, RW): rtc
000000000000007e-000000000000007f (prio 0, RW): kvmvapic
0000000000000092-0000000000000092 (prio 0, RW): port92
00000000000000a0-00000000000000a1 (prio 0, RW): kvm-pic
0000000000000170-0000000000000177 (prio 0, RW): alias ide @ide
0000000000000170-0000000000000177
00000000000001f0-00000000000001f7 (prio 0, RW): alias ide @ide
00000000000001f0-00000000000001f7
0000000000000376-0000000000000376 (prio 0, RW): alias ide @ide
0000000000000376-0000000000000376
0000000000000378-000000000000037f (prio 0, RW): alias parallel
@parallel 0000000000000378-000000000000037f
00000000000003f1-00000000000003f5 (prio 0, RW): alias fdc @fdc
00000000000003f1-00000000000003f5
00000000000003f6-00000000000003f6 (prio 0, RW): alias ide @ide
00000000000003f6-00000000000003f6
00000000000003f7-00000000000003f7 (prio 0, RW): alias fdc @fdc
00000000000003f7-00000000000003f7
00000000000003f8-00000000000003ff (prio 0, RW): serial
00000000000004d0-00000000000004d0 (prio 0, RW): kvm-elcr
00000000000004d1-00000000000004d1 (prio 0, RW): kvm-elcr
0000000000000510-0000000000000511 (prio 0, RW): fwcfg
0000000000000cf8-0000000000000cfb (prio 0, RW): pci-conf-idx
0000000000000cfc-0000000000000cff (prio 0, RW): pci-conf-data
0000000000005658-0000000000005658 (prio 0, RW): vmport
000000000000c000-000000000000c0ff (prio 1, RW): es1370
000000000000c100-000000000000c13f (prio 1, RW): e1000-io
000000000000c140-000000000000c14f (prio 1, RW): piix-bmdma-container
000000000000c140-000000000000c143 (prio 0, RW): piix-bmdma
000000000000c144-000000000000c147 (prio 0, RW): bmdma
000000000000c148-000000000000c14b (prio 0, RW): piix-bmdma
000000000000c14c-000000000000c14f (prio 0, RW): bmdma
aliases
pc.ram
0000000000000000-000000000fffffff (prio 0, RW): pc.ram
pci
0000000000000000-7ffffffffffffffe (prio 0, RW): pci
00000000000a0000-00000000000bffff (prio 1, RW): cirrus-lowmem-container
00000000000a0000-00000000000a7fff (prio 1, RW): alias vga.bank0
@vga.vram 0000000000000000-0000000000007fff
00000000000a0000-00000000000bffff (prio 0, RW): cirrus-low-memory
00000000000a8000-00000000000affff (prio 1, RW): alias vga.bank1
@vga.vram 0000000000008000-000000000000ffff
00000000000c0000-00000000000dffff (prio 1, RW): pc.rom
00000000000e0000-00000000000fffff (prio 1, R-): alias isa-bios
@pc.bios 0000000000000000-000000000001ffff
00000000fc000000-00000000fdffffff (prio 1, RW): cirrus-pci-bar0
00000000fc000000-00000000fc7fffff (prio 1, RW): vga.vram
00000000fc000000-00000000fc7fffff (prio 0, RW): cirrus-linear-io
00000000fd000000-00000000fd3fffff (prio 0, RW): cirrus-bitblt-mmio
00000000feba0000-00000000febbffff (prio 1, RW): e1000-mmio
00000000febf0000-00000000febf0fff (prio 1, RW): cirrus-mmio
00000000fffe0000-00000000ffffffff (prio 0, R-): pc.bios
ide
0000000000000000-7ffffffffffffffe (prio 0, RW): ide
ide
0000000000000000-7ffffffffffffffe (prio 0, RW): ide
ide
0000000000000000-7ffffffffffffffe (prio 0, RW): ide
parallel
0000000000000000-7ffffffffffffffe (prio 0, RW): parallel
fdc
0000000000000000-7ffffffffffffffe (prio 0, RW): fdc
ide
0000000000000000-7ffffffffffffffe (prio 0, RW): ide
fdc
0000000000000000-7ffffffffffffffe (prio 0, RW): fdc
vga.vram
0000000000000000-00000000007fffff (prio 1, RW): vga.vram
pc.bios
00000000fffe0000-00000000ffffffff (prio 0, R-): pc.bios
>
> Jan
>