From: Jan Kiszka <jan.kiszka@web.de>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: Avi Kivity <avi@redhat.com>, qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] Win2k broken by kvmvapic
Date: Sun, 07 Oct 2012 22:55:42 +0200 [thread overview]
Message-ID: <5071EC4E.7050308@web.de> (raw)
In-Reply-To: <CAAu8pHvzAM3yS8Z8KMnxixZyceZviw4pv+d1b+0Zvq3mHSWXUg@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2506 bytes --]
On 2012-10-07 20:40, Blue Swirl wrote:
> On Sun, Oct 7, 2012 at 5:24 PM, Jan Kiszka <jan.kiszka@web.de> 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
Weird, that's a PIO region. And the KVM kernel module should catch all
accesses.
>
> 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
Looks ok - it's kind of an option ROM.
Guess I need to dig for a Win2k CD...
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 259 bytes --]
prev parent reply other threads:[~2012-10-07 20:55 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-07 15:23 [Qemu-devel] Win2k broken by kvmvapic Blue Swirl
2012-10-07 17:24 ` Jan Kiszka
2012-10-07 18:40 ` Blue Swirl
2012-10-07 20:55 ` Jan Kiszka [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5071EC4E.7050308@web.de \
--to=jan.kiszka@web.de \
--cc=avi@redhat.com \
--cc=blauwirbel@gmail.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.