qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Marcel Apfelbaum <marcel@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Alexander Graf <agraf@suse.de>,
	qemu-devel@nongnu.org
Cc: marcel.a@redhat.com
Subject: Re: [Qemu-devel] [PATCH for-2.3] powerpc: fix -machine usb=no for newworld and pseries machines
Date: Tue, 24 Mar 2015 00:00:18 +0200	[thread overview]
Message-ID: <55108CF2.7010508@redhat.com> (raw)
In-Reply-To: <5510736B.8000107@redhat.com>

On 03/23/2015 10:11 PM, Paolo Bonzini wrote:
>
>
> On 23/03/2015 19:21, Alexander Graf wrote:
>> On 03/23/2015 07:20 PM, Marcel Apfelbaum wrote:
>>> On 03/23/2015 07:05 PM, Paolo Bonzini wrote:
>>>> Capture the explicit setting of "usb=no" into a separate bool, and
>>>> use it to skip the update of machine->usb in the board init function.
>>>>
>>>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>>>> ---
>>>>    hw/core/machine.c     | 1 +
>>>>    hw/ppc/mac_newworld.c | 2 +-
>>>>    hw/ppc/spapr.c        | 2 +-
>>>>    include/hw/boards.h   | 1 +
>>>>    4 files changed, 4 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/hw/core/machine.c b/hw/core/machine.c
>>>> index cb1185a..25c45e6 100644
>>>> --- a/hw/core/machine.c
>>>> +++ b/hw/core/machine.c
>>>> @@ -223,6 +223,7 @@ static void machine_set_usb(Object *obj, bool
>>>> value, Error **errp)
>>>>        MachineState *ms = MACHINE(obj);
>>>>
>>>>        ms->usb = value;
>>>> +    ms->usb_disabled = !value;
>>> Maybe is too late now, but I really not like this pollution of
>>> MachineState
>>> with 'usb_disabled'. (Imagine we have this kind of fields for lots of
>>> objects and lots
>>> of corner cases...)
>>> I know it comes to solve a bug, but we talked about it in another mail
>>> thread and
>>> this change in semantics was approved.
>>>
>>> Let me explain *why* I don't like it.
>>> 1. We add an "usb_disabled" field to a base class (actually object)
>>>     of all the machines and the only place it is interesting is
>>>     for 2 machines on ppc.
>
> So we do for kernel_irqchip_requested/allowed.  Both approaches could be
> replaced by a tri-state on/off/auto.
Personally I prefer this one, but out of the scope of this patch.

>
>>> 2. Even for these 2 machines, the scenario of defaults=on and usb=off
>>>     is not practical.
>
> Why?  For example you could add a virtio-input device instead of a USB
> keyboard and mouse.
You got me there :)
 From what I understood for those boards there is no need for this
combination but I don't know them enough (OK.. at all).

>
>> I'm personally fine either way, but I assumed that Paolo had a good
>> reason for writing the patch?
>
> Actually, two.
>
> One good reason is that no matter how you look at it, it's at least
> surprising and at worst a bug that "-machine usb=no" includes a default
> USB controller.
>
> The second good reason is that it's a guest ABI change for the versioned
> pSeries machines, and as such it breaks migration.
Always migration wins.

Bottom line, of course I don't have anything against fixing this bug,
my problem was only with the way we add those fields (usb_disabled), maybe a three state
QOM property (and variable behind it) is a solution, but not for now of course.

I also didn't like the required/allowed fields and I added them anyway...

Thanks,
Marcel


>
> Paolo
>

  reply	other threads:[~2015-03-23 22:00 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-23 17:05 [Qemu-devel] [PATCH for-2.3] powerpc: fix -machine usb=no for newworld and pseries machines Paolo Bonzini
2015-03-23 17:28 ` Alexander Graf
2015-03-23 18:20 ` Marcel Apfelbaum
2015-03-23 18:21   ` Alexander Graf
2015-03-23 20:11     ` Paolo Bonzini
2015-03-23 22:00       ` Marcel Apfelbaum [this message]
2015-03-24  7:47         ` Paolo Bonzini

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=55108CF2.7010508@redhat.com \
    --to=marcel@redhat.com \
    --cc=agraf@suse.de \
    --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 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).