From: Alexey Kardashevskiy <aik@ozlabs.ru>
To: Paolo Bonzini <pbonzini@redhat.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Cc: "Paul Mackerras" <paulus@samba.org>,
"Andreas Färber" <afaerber@suse.de>,
"Alexander Graf" <agraf@suse.com>
Subject: Re: [Qemu-devel] machines and versions - why so many?
Date: Tue, 24 Jun 2014 07:35:20 +1000 [thread overview]
Message-ID: <53A89D98.3030708@ozlabs.ru> (raw)
In-Reply-To: <53A840C8.8060607@redhat.com>
On 06/24/2014 12:59 AM, Paolo Bonzini wrote:
> Il 23/06/2014 16:15, Alexey Kardashevskiy ha scritto:
>> Hi!
>>
>> I have been hearing recently that we (server PPC) should have more that
>> just one pseries machine in QEMU because this is what everybody else does :)
>
> If you want to support live upgrades from QEMU 2.1 to QEMU 2.2, you should
> indeed prepare by adding a stable name such as pseries-2.1 already in QEMU
> 2.1.
>
>> My current understanding is that multiple machines (like
>> pc-i440fx-1.4..2.1, and many others) are needed:
>>
>> 3) for devices which are created explicitly and for which we want some
>> capabilities be disabled and we do not want to bother about this every time
>> we run QEMU;
>
> This is not the exact reason. What you wrote _could_ be a reason to use
> compat_properties, but it is not why x86 has multiple machine types.
>
> The reason is because when you migrate from QEMU 1.7 to QEMU 2.1, the
> machine should behave exactly the same as it did in QEMU 1.7. Any
> guest-visible change introduced between QEMU 1.7 and QEMU 2.1 (*) must be
> removed from QEMU 2.1. This is the reason why x86 has one machine type per
> version.
Yes, migration is why I want this, correct.
> (*) X got faster is not a guest-visible change. A guest-visible
> change is something like:
>
> - a register gets a new default value
>
> - a register that was read-only is now read-write
>
> - the size of a memory region changed (e.g. a ROM BAR grew
> from 128k to 256k)
>
> Sometimes, if no known guest is using the register (e.g. only
> firmware uses it) it is okay to skip the creation of the
> compat property. However, if in doubt, better add it.
>
>> ok, this one makes some sense for "pseries" to have (and upcoming
>> endianness register on VGA seems to be the case) but it seems that adding a
>> "compat" or "feature" property to the VGA device (and other devices which
>> deal with this kind of compatibility) is still more architecturally correct
>> thing to do, and let libvirt deal with the rest.
>
> Yes, this sounds sensible.
What does sound sensible exactly? :)
I understand that this is all needed for migration, I should have mentioned
this :) I do not understand why it has to be a new machine type every time.
No device has "compat" option yet because of legacy? Some global
machine-independent property set per QEMU version would make sense and it
would work for every machine in that QEMU version.
nec-usb-xhci is off for PC_COMPAT_1_3 because of what? PIIX emulation was
broken in 1.3? Or nec-usb-xhci? If it is the latter, why is the tweak
limited by PC?
Looks like I must copy PC_COMPAT_X_X as PSERIES_COMPAT_X_X starting 1.6 (or
1.7 - whichever starts supporting migration well enough on pseries) because
pretty much of what they do is tweaking PCI devices and we can have all of
these devices on pseries. And then keep an eye on what is happening in PC
world to copy same tweaks to pseries as they come. Is that correct?
Others (ARM, s390) do not do that because they do not support PCI? Or
migration? Or some other reason?
> Paolo
>
>> Since I (almost) always miss the bigger picture, what do I miss now? :)
>> Thanks!
>>
>>
>
--
Alexey
next prev parent reply other threads:[~2014-06-23 21:35 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-23 14:15 [Qemu-devel] machines and versions - why so many? Alexey Kardashevskiy
2014-06-23 14:59 ` Paolo Bonzini
2014-06-23 21:35 ` Alexey Kardashevskiy [this message]
2014-06-23 21:41 ` Andreas Färber
2014-06-23 22:33 ` Alexey Kardashevskiy
2014-06-24 5:21 ` Paolo Bonzini
2014-06-24 11:15 ` Andreas Färber
2014-06-24 13:05 ` Alexey Kardashevskiy
2014-06-24 12:38 ` Marcel Apfelbaum
2014-06-23 21:41 ` Peter Maydell
2014-06-24 5:15 ` Paolo Bonzini
2014-06-24 5:37 ` Alexey Kardashevskiy
2014-06-24 8:17 ` Markus Armbruster
2014-06-24 9:10 ` Alexey Kardashevskiy
2014-06-24 11:22 ` Andreas Färber
2014-06-24 12:56 ` Alexey Kardashevskiy
2014-06-23 15:16 ` Markus Armbruster
2014-06-24 1:06 ` Alexey Kardashevskiy
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=53A89D98.3030708@ozlabs.ru \
--to=aik@ozlabs.ru \
--cc=afaerber@suse.de \
--cc=agraf@suse.com \
--cc=paulus@samba.org \
--cc=pbonzini@redhat.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 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).