qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: li guang <lig.fnst@cn.fujitsu.com>
Cc: libvir-list@redhat.com, qemu-devel@nongnu.org, mst@redhat.com
Subject: Re: [Qemu-devel] [libvirt] [PATCH v2 1/2] add pci-bridge controller type
Date: Tue, 8 Jan 2013 08:59:30 +0000	[thread overview]
Message-ID: <20130108085930.GF4038@redhat.com> (raw)
In-Reply-To: <1357635328.27526.9.camel@liguang.fnst.cn.fujitsu.com>

On Tue, Jan 08, 2013 at 04:55:28PM +0800, li guang wrote:
> 在 2013-01-08二的 08:51 +0000,Daniel P. Berrange写道:
> > On Tue, Jan 08, 2013 at 04:47:40PM +0800, li guang wrote:
> > > 在 2013-01-08二的 16:37 +0800,li guang写道:
> > > > 在 2013-01-08二的 08:04 +0000,Daniel P. Berrange写道:
> > > > > On Tue, Jan 08, 2013 at 09:58:49AM +0800, liguang wrote:
> > > > > > Signed-off-by: liguang <lig.fnst@cn.fujitsu.com>
> > > > > > ---
> > > > > >  src/conf/device_conf.c |   12 +++++++++++-
> > > > > >  src/conf/device_conf.h |    1 +
> > > > > >  src/conf/domain_conf.c |    5 ++++-
> > > > > >  src/conf/domain_conf.h |    1 +
> > > > > >  4 files changed, 17 insertions(+), 2 deletions(-)
> > > > > > 
> > > > > > diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c
> > > > > > index 7b97f45..1c06ed0 100644
> > > > > > --- a/src/conf/device_conf.c
> > > > > > +++ b/src/conf/device_conf.c
> > > > > > @@ -51,16 +51,18 @@ int
> > > > > >  virDevicePCIAddressParseXML(xmlNodePtr node,
> > > > > >                              virDevicePCIAddressPtr addr)
> > > > > >  {
> > > > > > -    char *domain, *slot, *bus, *function, *multi;
> > > > > > +    char *domain, *slot, *bus, *function, *multi, *bridge;
> > > > > >      int ret = -1;
> > > > > >  
> > > > > >      memset(addr, 0, sizeof(*addr));
> > > > > > +    addr->bridge = -1;
> > > > > >  
> > > > > >      domain   = virXMLPropString(node, "domain");
> > > > > >      bus      = virXMLPropString(node, "bus");
> > > > > >      slot     = virXMLPropString(node, "slot");
> > > > > >      function = virXMLPropString(node, "function");
> > > > > >      multi    = virXMLPropString(node, "multifunction");
> > > > > > +    bridge   = virXMLPropString(node, "bridge");
> > > > > >  
> > > > > >      if (domain &&
> > > > > >          virStrToLong_ui(domain, NULL, 0, &addr->domain) < 0) {
> > > > > > @@ -98,6 +100,14 @@ virDevicePCIAddressParseXML(xmlNodePtr node,
> > > > > >          goto cleanup;
> > > > > >  
> > > > > >      }
> > > > > > +
> > > > > > +    if (bridge &&
> > > > > > +        virStrToLong_i(bridge, NULL, 0, &addr->bridge) < 0) {
> > > > > > +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> > > > > > +                       _("pci-bridge number must be >= 0 "));
> > > > > > +        goto cleanup;
> > > > > > +    }
> > > > > 
> > > > > This is bogus - there's no need for a new 'bridge' attribute - we
> > > > > have 'bus' which is sufficient.
> > > > 
> > > > Oh, yes, this version 'bridge' is unnecessary.
> > > > 
> > > > In former version, I want to discriminate if a pci device want to
> > > > sitting on default bus pci.0 or pci-bridge0, so bring in 'bridge'.
> > > > 
> > > > Thanks!
> > > 
> > > but, without 'bridge', can't know if user want or don't want pci-bridge,
> > > and the check for 'bus != 0' will be removed, then if user happened to 
> > > define a pci device greater than 0, qemu will complain about this,
> > > so it's inconvenient for this case.
> > 
> > The check for 'bus != 0' was only added because we didn't have any
> > support for bridges. Once we have bridge support, then that check
> > can be changed. If bus != 0, then check to see if there's a matching
> > bridge device, otherwise raise an error.
> 
> OK for me, though it seems much more changes will be involved
> than with 'bridge' condition.

The point is that the 'bridge' attribute is redundant information in
the XML that you're forcing the admin to specify to avoid doing more
coding work in libvirt. That's not optimizing for the right person.

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:[~2013-01-08  8:59 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-08  1:58 [Qemu-devel] [libvirt][PATCH v2 0/2] add pci-bridge support liguang
2013-01-08  1:58 ` [Qemu-devel] [libvirt][PATCH v2 1/2] add pci-bridge controller type liguang
2013-01-08  4:38   ` Doug Goldstein
2013-01-08  5:26     ` li guang
2013-01-08  8:04   ` [Qemu-devel] [libvirt] [PATCH " Daniel P. Berrange
2013-01-08  8:37     ` li guang
2013-01-08  8:47       ` li guang
2013-01-08  8:51         ` Daniel P. Berrange
2013-01-08  8:55           ` li guang
2013-01-08  8:59             ` Daniel P. Berrange [this message]
2013-01-08  1:58 ` [Qemu-devel] [libvirt][PATCH v2 2/2] build command line for pci-bridge device of qemu liguang

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=20130108085930.GF4038@redhat.com \
    --to=berrange@redhat.com \
    --cc=libvir-list@redhat.com \
    --cc=lig.fnst@cn.fujitsu.com \
    --cc=mst@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).