All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Ján Tomko" <jtomko@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Michael Roth" <mdroth@linux.vnet.ibm.com>,
	"QEMU Developers" <qemu-devel@nongnu.org>,
	"Alexander Graf" <agraf@suse.de>,
	"Anthony Liguori" <aliguori@amazon.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Andreas Färber" <afaerber@suse.de>
Subject: Re: [Qemu-devel] Should we have a 2.0-rc3 ?
Date: Fri, 11 Apr 2014 09:37:48 +0100	[thread overview]
Message-ID: <20140411083748.GA30229@redhat.com> (raw)
In-Reply-To: <87k3awqopq.fsf@blackfin.pond.sub.org>

On Fri, Apr 11, 2014 at 10:01:37AM +0200, Markus Armbruster wrote:
> Eric Blake <eblake@redhat.com> writes:
> 
> > On 04/10/2014 07:45 AM, Alexander Graf wrote:
> >
> >>>>>
> >>>>> Is this something that can be quickly fixed (perhaps by reverting the
> >>>>> PPC patch until a more complete solution is ready), and if so, is it
> >>>>> worth doing for 2.0 proper, rather than waiting for 2.0.1?
> >>>> Which way works better for you? I'd be perfectly fine with reverting
> >>>> the patch. Libvirt is the only reason that path is there in the first
> >>>> place.
> >>>>
> >>> If I read the git history correctly, there were two patches changing
> >>> pci bus
> >>> names for ppc in this release, not just one:
> >> 
> >> The main difference is that the g3beige and mac99 targets are not
> >> supported by libvirt FWIW :).
> >> 
> >> But I agree that this is messy. And a pretty intrusive change pretty
> >> late in the game. Eric, how hard would a special case for this be in
> >> libvirt code? Are we talking about a 2 line patch?
> >
> > Here's the current libvirt patch proposal:
> >
> > https://www.redhat.com/archives/libvir-list/2014-April/msg00444.html
> >
> > a bit more than a 2-line patch:
> >
> >  src/qemu/qemu_capabilities.c | 26 ++++++++++++++++----------
> >  1 file changed, 16 insertions(+), 10 deletions(-)
> >
> > We already have to special case on machine type for all qemu older than
> > the point where we introduce sane names; but it would be nicer if that
> > were the ONLY special casing (rather than having the _additional_
> > special casing that for 2.0, ppc, but not other machines, behave
> > differently).  The IDEAL situation is to have a QMP command that can
> > query which naming convention is in use for a given machine; even if
> > such command is not introduced until 2.1, the logic will look something
> > like:
> >
> > if (probe exists)
> >   use results of probe to set QEMU_CAPS_PCI_MULTIBUS
> > else if (machine with sane handling)
> >   assume QEMU_CAPS_PCI_MULTIBUS
> > else
> >   assume no QEMU_CAPS_PCI_MULTIBUS
> >
> > and is completely independent of version checks, which means it is
> > portable even to downstream backports where the version number is not as
> > large as upstream, without any modification when backporting this hunk.
> >
> > Without a QMP command to probe it, but with all machines switched to
> > sane naming in the same version of qemu, the logic looks more like:
> >
> > if (x86 or 686)
> >   assume QEMU_CAPS_PCI_MULTIBUS
> > else if (version check) // evil for downstream backports
> >   set QEMU_CAPS_PCI_MULTIBUS if new enough
> >
> > which looks shorter, but plays havoc with downstream ports, which now
> > have to patch the version check to play nicely with downstream.
> 
> I understand why libvirt needs to know how PCI buses a named.  I'm not
> sure a "multibus?" flag can cover more than the present problem, though.
> 
> Doesn't libvirt need to know how *any* kind of bus is named?

Yes, you are right - in theory libvirt needs to know the name of any
default bus which is pre-created due to the machine type. For ones
we create ourselvs, obviously we already have ability to choose the
name.

Now in practice, I believe the default PCI bus is the only one that
actually causes us trouble today. USB buses are all fully created by
libvirt self.  The default SCSI/IDE/etc disk buses are not a problem
since we just refer to them by bus number. While there are other buses
on non-x86 our support for those in libvirt pretty much doesn't exist
so we don't currently hit that.

> Would it suffice if libvirt could introspect the names of all available
> buses?  And perhaps control the names of all buses it creates itself?

'info qtree' provides a way to introspect that, but of course we
probe capabilities using '-M none' so we case use that, and we
don't particularly want to have to invoke QEMU many more times to
probe the machine types.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

  reply	other threads:[~2014-04-11  8:39 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-10 11:17 [Qemu-devel] Should we have a 2.0-rc3 ? Peter Maydell
2014-04-10 11:24 ` Alexander Graf
2014-04-10 15:22   ` Michael S. Tsirkin
2014-04-10 11:49 ` Kevin Wolf
2014-04-10 12:44 ` Eric Blake
2014-04-10 12:46   ` Alexander Graf
2014-04-10 12:51     ` Eric Blake
2014-04-10 12:56       ` Alexander Graf
2014-04-10 13:41     ` Ján Tomko
2014-04-10 13:45       ` Alexander Graf
2014-04-10 15:02         ` Eric Blake
2014-04-10 15:27           ` Alexander Graf
2014-04-10 15:38             ` Eric Blake
2014-04-10 15:42               ` Alexander Graf
2014-04-11  8:01           ` Markus Armbruster
2014-04-11  8:37             ` Daniel P. Berrange [this message]
2014-04-10 15:26 ` Michael S. Tsirkin
2014-04-10 18:55 ` Cole Robinson
2014-04-10 21:30 ` Peter Maydell
2014-04-11 17:37 ` Peter Maydell
2014-04-11 22:55   ` Alexander Graf
2014-04-12  1:49   ` Paolo Bonzini
2014-04-12  8:48   ` Michael Tokarev

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=20140411083748.GA30229@redhat.com \
    --to=berrange@redhat.com \
    --cc=afaerber@suse.de \
    --cc=agraf@suse.de \
    --cc=aliguori@amazon.com \
    --cc=armbru@redhat.com \
    --cc=jtomko@redhat.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --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.