From: Avi Kivity <avi@redhat.com>
To: Jan Kiszka <jan.kiszka@web.de>
Cc: "Blue Swirl" <blauwirbel@gmail.com>,
"Andreas Färber" <andreas.faerber@web.de>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: [Qemu-devel] Re: POLL: Why do you use kqemu?
Date: Sun, 07 Jun 2009 13:06:51 +0300 [thread overview]
Message-ID: <4A2B913B.9070602@redhat.com> (raw)
In-Reply-To: <4A2B8EBA.3020402@web.de>
Jan Kiszka wrote:
> Avi Kivity wrote:
>
>> Jan Kiszka wrote:
>>
>>> Avi Kivity wrote:
>>>
>>>
>>>> Jan Kiszka wrote:
>>>>
>>>>
>>>>>>> Check e.g the diff of hw/vga.c against upstream: All the magic dances
>>>>>>> there are required as qemu-kvm tracking
>>>>>>> cpu_register_physical_memory and
>>>>>>> kvm_log_start cannot cope with all the patterns normal qemu code
>>>>>>> comes
>>>>>>> up with. Upstream slot management now provides the same features
>>>>>>> (including migration) like qemu-kvm, it just does not deal with
>>>>>>> legacy,
>>>>>>> thus it does not have to patch qemu code (rather, we were able to
>>>>>>> remove
>>>>>>> some already merged hooks - vga_dirty_log_stop).
>>>>>>>
>>>>>>>
>>>>>> Still not very restrictive, all this could be encapsulated with for
>>>>>> example macro COMPAT_NO_DMRW which could be removed when we don't care
>>>>>> anymore. Next?
>>>>>>
>>>>>>
>>>>> Really, it's not worth the maintenance pain: Every new device emulation
>>>>> code that wants to be KVM-legacy-compatible would need to be written
>>>>> like that. And unless you are familiar with the slot management
>>>>> internals, the "correct" pattern will not be obvious.
>>>>>
>>>>>
>>>> Only devices which direct map memory. Currently VGA and cirrus.
>>>>
>>>>
>>>>
>>> --- /data/qemu/hw/piix_pci.c 2009-06-07 09:42:27.000000000 +0200
>>> +++ hw/piix_pci.c 2009-06-02 13:00:09.000000000 +0200
>>> ...
>>> @@ -91,6 +93,10 @@ static void i440fx_update_memory_mapping
>>> int i, r;
>>> uint32_t smram, addr;
>>>
>>> + if (kvm_enabled()) {
>>> + /* FIXME: Support remappings and protection changes. */
>>> + return;
>>> + }
>>> update_pam(d, 0xf0000, 0x100000, (d->config[0x59] >> 4) & 3);
>>> for(i = 0; i < 12; i++) {
>>> r = (d->config[(i >> 1) + 0x5a] >> ((i & 1) * 4)) & 3;
>>>
>>> IIRC, this is at least partially due to the restricted slot management
>>> in qemu-kvm - or is this obsolete now?
>>>
>>>
>> This is from the first days of qemu-kvm, some of this is due to Intel
>> real mode issues (can't start at 0xffff ffff ffff fff0), and some I
>> never got around to. It's possible that it requires proper slot
>> destruction. Even if that's the case, we cam simply return here, as the
>> code shows.
>>
>
> But we can also get past this point as upstream demonstrates (minus
> protection changes).
>
It's actually quite recent:
commit d03f4d2defd76f35f46f5418979f3e6d14a11183
Author: Jan Kiszka <jan.kiszka@web.de>
Date: Wed Sep 10 21:34:44 2008 +0200
I440fx: do change ISA mappings under KVM
As long as KVM does not support remapping or protection state changes of
guest memory, do not fiddle with the ISA mappings that QEMU see,
confusing both the monitor and the gdbstub.
Signed-off-by: Jan Kiszka <jan.kiszka@web.de>
Signed-off-by: Avi Kivity <avi@qumranet.com>
So we can change this to if (kvm_enabled() &&
kvm_doesnt_support_remapping_or_protection_state_changes()).
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
next prev parent reply other threads:[~2009-06-07 10:07 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-03 21:57 [Qemu-devel] POLL: Why do you use kqemu? Anthony Liguori
2009-06-04 16:55 ` Anton D Kachalov
2009-06-05 0:44 ` Johannes Schindelin
2009-06-05 7:45 ` Gerd Hoffmann
2009-06-05 8:40 ` Tomasz Chmielewski
2009-06-05 9:08 ` Anton D Kachalov
2009-06-05 9:15 ` Gerd Hoffmann
2009-06-05 20:14 ` Lennart Sorensen
2009-06-05 23:23 ` Johannes Schindelin
2009-06-08 0:13 ` Jamie Lokier
2009-06-08 5:59 ` Avi Kivity
2009-06-08 11:57 ` Jamie Lokier
2009-06-08 12:03 ` Avi Kivity
2009-06-08 12:16 ` Jamie Lokier
2009-06-08 12:28 ` Avi Kivity
2009-06-08 12:44 ` [Qemu-devel] " Jan Kiszka
2009-06-08 13:06 ` Avi Kivity
2009-06-08 13:18 ` Jan Kiszka
2009-06-08 13:24 ` Avi Kivity
2009-06-08 13:44 ` Jan Kiszka
2009-06-08 14:03 ` Avi Kivity
2009-06-08 12:36 ` Jan Kiszka
2009-06-08 18:25 ` [Qemu-devel] " Lennart Sorensen
2009-06-06 13:27 ` Andreas Färber
2009-06-06 16:02 ` Avi Kivity
2009-06-06 16:29 ` Blue Swirl
2009-06-06 17:02 ` [Qemu-devel] " Jan Kiszka
2009-06-06 17:25 ` Blue Swirl
2009-06-06 17:32 ` Jan Kiszka
2009-06-06 19:15 ` Andreas Färber
2009-06-07 5:43 ` Avi Kivity
2009-06-07 5:01 ` Avi Kivity
2009-06-07 7:35 ` Jan Kiszka
2009-06-07 7:46 ` Avi Kivity
2009-06-07 8:33 ` Blue Swirl
2009-06-07 8:50 ` Jan Kiszka
2009-06-07 9:01 ` Blue Swirl
2009-06-07 9:25 ` Jan Kiszka
2009-06-07 9:37 ` Avi Kivity
2009-06-07 9:47 ` Jan Kiszka
2009-06-07 9:52 ` Avi Kivity
2009-06-07 9:56 ` Jan Kiszka
2009-06-07 10:06 ` Avi Kivity [this message]
2009-06-07 11:13 ` Blue Swirl
2009-06-07 11:23 ` Gleb Natapov
2009-06-07 11:26 ` Blue Swirl
2009-06-07 11:29 ` Gleb Natapov
2009-06-07 11:39 ` Avi Kivity
2009-06-07 12:40 ` Blue Swirl
2009-06-07 12:43 ` Avi Kivity
2009-06-07 12:52 ` Gleb Natapov
2009-06-07 12:56 ` Avi Kivity
2009-06-07 13:18 ` Blue Swirl
2009-06-07 13:35 ` Jan Kiszka
2009-06-07 13:35 ` Avi Kivity
2009-06-07 18:37 ` Anthony Liguori
2009-06-07 18:40 ` Blue Swirl
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=4A2B913B.9070602@redhat.com \
--to=avi@redhat.com \
--cc=andreas.faerber@web.de \
--cc=blauwirbel@gmail.com \
--cc=jan.kiszka@web.de \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).