From: "Michael S. Tsirkin" <mst@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: Marcel Apfelbaum <marcel.a@redhat.com>,
Laszlo Ersek <lersek@redhat.com>,
qemu-devel@nongnu.org, Markus Armbruster <armbru@redhat.com>,
Igor Mammedov <imammedo@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>, John Snow <jsnow@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 0/5] q35: Remove old machines and unused compat code
Date: Fri, 5 Feb 2016 00:14:16 +0200 [thread overview]
Message-ID: <20160204221416.GA21272@redhat.com> (raw)
In-Reply-To: <20160204190944.GO26314@thinpad.lan.raisama.net>
On Thu, Feb 04, 2016 at 05:09:44PM -0200, Eduardo Habkost wrote:
> On Thu, Feb 04, 2016 at 08:02:30PM +0200, Michael S. Tsirkin wrote:
> > On Thu, Feb 04, 2016 at 03:16:17PM -0200, Eduardo Habkost wrote:
> > > On Thu, Feb 04, 2016 at 06:01:50PM +0200, Michael S. Tsirkin wrote:
> > > > On Sat, Jan 23, 2016 at 02:02:08PM -0200, Eduardo Habkost wrote:
> > > > > This is another attempt to remove old q35 machine code. Now I am
> > > > > also removing unused compat code to demonstrate the benefit of
> > > > > throwing away the old code that nobody uses.
> > > >
> > > > The same thing I said applies - we don't know that nobody uses old q35
> > > > machine types.
> > > > We do know we don't need to migrate to/from them,
> > > > so we can drop compat code.
> > > > But please add aliases so people can still start these machines.
> > >
> > > If people use them, they can easily update their configurations.
> > > I will copy and paste the reply Markus sent 4 months ago below.
> > >
> > > On Mon, Sep 14, 2015 at 09:18:47AM +0200, Markus Armbruster wrote:
> > > > We've been through this before, but we can go through it once more.
> > > > Choices:
> > > >
> > > > A. Remove old machine type
> > > >
> > > > A guest using it can't be started. Easy to understand on the host.
> > > > An error message advising to switch to a newer machine type would be
> > > > a nice touch.
> > > >
> > > > This is a clean break in backward compatibility. To be mentioned in
> > > > release notes, obviously.
> > > >
> > > > B. Change old machine type in a guest-visible way
> > > >
> > > > Depending on the nature of the change and the guest, a guest using it
> > > > either doesn't notice, copes with it successfully, or fails in
> > > > guest-specific ways. If the latter, the failure can be "guest
> > > > hangs", which is much harder to figure out than A.
> > > >
> > > > Unless we can *demonstrate* that nothing bad happens for all the
> > > > guests people actually use with the old machine types, this is a
> > > > different kind of backward compatibility break.
> > > >
> > > > Demonstrating this is feels infeasible to me, but you're welcome to
> > > > try.
> > > >
> > > > I could call the difference between the two a tradeoff, but since we've
> > > > been through this before, I'll be more blunt: choosing B robs Peter (the
> > > > guy with guests where badness happens) to pay Paul (the guy with guests
> > > > that cope). Paul is saved the inconvenience of having to read release
> > > > notes or his logs, and change machine types. Peter pays for that with
> > > > figuring out WTF his guests are doing now.
> > > >
> > > > As a user, I'd pick a clean break in backward compatibility over a hack
> > > > that preserves effective compatibility when it works, but breaks it
> > > > uncleanly when it doesn't.
> > > >
> > > > As a developer, I'm insisting on it.
> > > >
> > > > So, if you want B, the onus is on *you* to show us why nothing bad will
> > > > happen.
> > > >
> >
> > I agree with the conclusion for option B. But I think the correct
> > solution is not A, it is to analyse changes, maybe even test, and show
> > that nothing bad can happen.
>
> Do you volunteer for that work?
Nope, sorry. It's your idea, your patchset. I am saying, look for some
low-hanging fruit. Find some compat options we can drop without
breaking guests, drop just these. Are there options we need for piix
anyway? No point in dropping them at all.
For example, the builtin AML can be dropped since we
always use a bios with acpi support now.
It is also trivial to test.
Memory layout is probably ok to change.
Maybe more.
> >
> > Because A suffers from exactly the same problem if people just blindly
> > switch to a new machine type.
>
> Anything can happen if people change their configurations
> blindly.
>
> Nobody should change configuration blindly, and that's also why
> we shouldn't run a different machine when the user is asking for
> an old one. We don't know why the user is asking for an old
> machine and we can't make decisions for the user. Management
> software might know why an old machine is being used and might be
> able to help update the config, but QEMU doesn't.
What guidance do we provide? Try it and see if it works? What exactly
do we ask user to test? If QEMU developers can't find out whether
switching a machine type is safe, what hope is there that management
developers can?
> --
> Eduardo
next prev parent reply other threads:[~2016-02-04 22:14 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-23 16:02 [Qemu-devel] [PATCH v2 0/5] q35: Remove old machines and unused compat code Eduardo Habkost
2016-01-23 16:02 ` [Qemu-devel] [PATCH v2 1/5] q35: Remove old machine versions Eduardo Habkost
2016-01-23 16:02 ` [Qemu-devel] [PATCH v2 2/5] machine: Remove no_tco field Eduardo Habkost
2016-01-23 16:02 ` [Qemu-devel] [PATCH v2 3/5] ich9: Remove enable_tco arguments from init functions Eduardo Habkost
2016-01-23 16:02 ` [Qemu-devel] [PATCH v2 4/5] q35: Remove unused q35-acpi-dsdt.aml file Eduardo Habkost
2016-01-23 16:02 ` [Qemu-devel] [PATCH v2 5/5] q35: No need to check gigabyte_align Eduardo Habkost
2016-01-25 11:27 ` [Qemu-devel] [PATCH v2 0/5] q35: Remove old machines and unused compat code Laszlo Ersek
2016-01-26 10:15 ` Igor Mammedov
2016-01-26 14:49 ` Laszlo Ersek
2016-01-26 10:17 ` Igor Mammedov
2016-01-26 14:59 ` [Qemu-devel] [PATCH 6/5] pc: Remove unused pc_acpi_init() function Eduardo Habkost
2016-01-26 17:27 ` Laszlo Ersek
2016-01-26 14:59 ` [Qemu-devel] [PATCH 7/5] acpi: Remove unused acpi_table_add_builtin() function Eduardo Habkost
2016-01-26 17:27 ` Laszlo Ersek
2016-01-27 17:08 ` Igor Mammedov
2016-02-04 16:01 ` [Qemu-devel] [PATCH v2 0/5] q35: Remove old machines and unused compat code Michael S. Tsirkin
2016-02-04 17:16 ` Eduardo Habkost
2016-02-04 18:02 ` Michael S. Tsirkin
2016-02-04 19:09 ` Eduardo Habkost
2016-02-04 22:14 ` Michael S. Tsirkin [this message]
2016-02-05 9:09 ` Markus Armbruster
2016-02-05 14:46 ` Eduardo Habkost
2016-02-06 18:34 ` Michael S. Tsirkin
2016-02-11 15:51 ` Eduardo Habkost
2016-02-11 16:33 ` Michael S. Tsirkin
2016-02-11 17:24 ` Eduardo Habkost
2016-02-11 20:49 ` Paolo Bonzini
2016-02-11 20:49 ` Paolo Bonzini
2016-02-12 10:58 ` Markus Armbruster
2016-02-18 11:18 ` Markus Armbruster
2016-02-18 12:07 ` Michael S. Tsirkin
2016-02-18 12:46 ` Markus Armbruster
2016-02-05 8:55 ` Markus Armbruster
2016-02-07 10:17 ` Michael S. Tsirkin
2016-02-08 11:59 ` Markus Armbruster
2016-02-18 12:39 ` Markus Armbruster
2016-02-18 23:17 ` Eduardo Habkost
2016-02-19 8:29 ` Markus Armbruster
2016-02-23 13:00 ` Michael S. Tsirkin
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=20160204221416.GA21272@redhat.com \
--to=mst@redhat.com \
--cc=armbru@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=jsnow@redhat.com \
--cc=lersek@redhat.com \
--cc=marcel.a@redhat.com \
--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 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.