From: "Michael S. Tsirkin" <mst@redhat.com>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: "qemu-ppc@nongnu.org List" <qemu-ppc@nongnu.org>,
qemu-devel qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH 12/12] pseries: Generate unique LIOBNs for PCI host bridges
Date: Fri, 23 Nov 2012 12:53:23 +0200 [thread overview]
Message-ID: <20121123105323.GB7051@redhat.com> (raw)
In-Reply-To: <20121123041307.GD5588@truffula.fritz.box>
On Fri, Nov 23, 2012 at 03:13:07PM +1100, David Gibson wrote:
> On Thu, Nov 22, 2012 at 09:23:03AM +0200, Michael S. Tsirkin wrote:
> > On Thu, Nov 22, 2012 at 01:27:18PM +1100, David Gibson wrote:
> > > On Wed, Nov 21, 2012 at 05:27:37PM +0200, Michael S. Tsirkin wrote:
> > > > On Wed, Nov 21, 2012 at 02:27:08PM +0100, Alexander Graf wrote:
> > > > > On 11/21/2012 02:21 PM, David Gibson wrote:
> > > > > >On Wed, Nov 21, 2012 at 03:13:39PM +0200, Michael S. Tsirkin wrote:
> > > > > >>On Wed, Nov 21, 2012 at 11:36:00PM +1100, David Gibson wrote:
> > > > > >>>On Wed, Nov 21, 2012 at 01:34:48PM +0200, Michael S. Tsirkin wrote:
> > > > > >>>>On Wed, Nov 21, 2012 at 11:57:05AM +1100, David Gibson wrote:
> > > > > >>>>>On Tue, Nov 20, 2012 at 02:26:09PM +0200, Michael S. Tsirkin wrote:
> > > > > >>>>>>On Tue, Nov 20, 2012 at 10:27:11AM +0100, Alexander Graf wrote:
> > > > > >>>>>>>On 19.11.2012, at 23:51, David Gibson wrote:
> > > > > >>>>>>>
> > > > > >>>>>>>>On Mon, Nov 19, 2012 at 05:34:12PM +0100, Alexander Graf wrote:
> > > > > >>>>>>>>>On 13.11.2012, at 03:47, David Gibson wrote:
> > > > > >>>>>>>>>
> > > > > >>>>>>>>>>From: Alexey Kardashevskiy<aik@ozlabs.ru>
> > > > > >>>>>>>>>>
> > > > > >>>>>>>>>>In future (with VFIO) we will have multiple PCI host bridges on
> > > > > >>>>>>>>>>pseries. Each one needs a unique LIOBN (IOMMU id). At the moment we
> > > > > >>>>>>>>>>derive these from the pci domain number, but the whole notion of
> > > > > >>>>>>>>>>domain numbers on the qemu side is bogus and in any case they're not
> > > > > >>>>>>>>>>actually uniquely allocated at this point.
> > > > > >>>>>>>>>>
> > > > > >>>>>>>>>>This patch, therefore uses a simple sequence counter to generate
> > > > > >>>>>>>>>>unique LIOBNs for PCI host bridges.
> > > > > >>>>>>>>>>
> > > > > >>>>>>>>>>Signed-off-by: Alexey Kardashevskiy<aik@ozlabs.ru>
> > > > > >>>>>>>>>>Signed-off-by: David Gibson<david@gibson.dropbear.id.au>
> > > > > >>>>>>>>>I don't really like the idea of having a global variable just
> > > > > >>>>>>>>>because our domain ID generation seems to not work as
> > > > > >>>>>>>>>expected. Michael, any comments here?
> > > > > >>>>>>>>Well, the patch I sent which changed domain id generation was
> > > > > >>>>>>>>ignored. In any case, as I said, the whole concept of domain numbers
> > > > > >>>>>>>Michael?
> > > > > >>>>>>This is user visible, right?
> > > > > >>>>>>So IMHO we should have the user specify LIOBN through a property,
> > > > > >>>>>>rather than assign what's essentially a random value.
> > > > > >>>>>Well, I can implement an override through a property, which could be
> > > > > >>>>>useful in some circumstances. But we still need to have qemu generate
> > > > > >>>>>unique defaults, rather than forcing it to be specified in every case.
> > > > > >>>>I don't see why.
> > > > > >>>>And if you want automatic defaults then they need to be generated in a
> > > > > >>>>way that does not depend on implementation detail such as order of
> > > > > >>>>device initialization.
> > > > > >>>Because requiring explicit unique liobns to be supplied whenever there
> > > > > >>>is more than one PHB is horrible for usability.
> > > > > >>We should make simple things simple and complex things possible.
> > > > > >>More than one PHB seems like an advanced feature
> > > > > >Not for pseries. On real hardware of this type, dozens of PHBs is
> > > > > >routine. Plus, vfio passthrough is coming, we need at minimum one PHB
> > > > > >for emulated devices and one for passthrough devices.
> > > > >
> > > > > Yeah, I second Davids opinion here. We need to make this easy for users.
> > > >
> > > > I think users don't normally create PHBs. They request a disk, a network
> > > > device, a pass-through device ... In this case if this requires
> > > > more PHBs create them internally but I imagine this doesn't
> > > > require any allocation scheme - simply set some address
> > > > for virtual devices, some other one for assigned devices ... no?
> > >
> > > No. One PHB for passthrough and one for emulated is the minimum.
> > > Since we don't emulated p2p bridges,
> >
> > Actually qemu does emulate p2p bridges.
> >
> > > each PHB can only support a small
> > > number of PCI devices, so if enough PCI devices are requested, we will
> > > still need to create - and assign numbers to - additional PHBs.
> >
> > Each PHB can support up to 32 slots right? This seems ample for
> > a typical use. If you want many tens of devices you need to
> > supply addresses manually, this looks reasonable to me.
> >
> > Allocating PHBs on the fly seems unencessarily tricky.
>
> I still think you're thinking far too much in terms of x86-like
> guests. But, I guess, emulated PCI devices will be pretty rare, since
> they're so slow anyway.
They are not very slow. My point is the reverse. Device assignment is
pretty rare, assigning multiple devices even more rare. It should work
but I don't see why we should increase maintainance burden to save the user
ruynning qemu from CLI the trouble of specifying a single extra property
in this advanced case.
> But, what Alex was getting at is another factor I forgot. Because of
> the way the PAPR PCI paravirtualized interfaces work, host devices
> which are in different "partitionable endpoints" (roughly the minimum
> granularity for safe isolation) must appear in different virtual PHBs
> in the guest. So if we pass through a lot of PCI devices, we will
> almost certainly need a lot of guest PHBs.
One further point: physical systems normally don't let you hotplug PHBs.
So if for non hotplug you auto-add PHBs, you end up treating hotplug
and non hotplug devices differently from UI point of view this is nasty.
Look, even if solution using a required property is less elegant for CLI
use, it will work, won't it?
So how about we merge it so that things work, and then we can discuss a
patch on top that auto-generates this property?
> --
> David Gibson | I'll have my music baroque, and my code
> david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
> | _way_ _around_!
> http://www.ozlabs.org/~dgibson
next prev parent reply other threads:[~2012-11-23 10:51 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-13 2:46 [Qemu-devel] [0/12] Pending pseries patches David Gibson
2012-11-13 2:46 ` [Qemu-devel] [PATCH 01/12] pseries: Fix incorrect initialization of interrupt controller David Gibson
2012-11-13 2:46 ` [Qemu-devel] [PATCH 02/12] pseries: Use #define for XICS base irq number David Gibson
2012-11-13 2:46 ` [Qemu-devel] [PATCH 03/12] pseries: Move XICS initialization before cpu initialization David Gibson
2012-11-19 16:22 ` Alexander Graf
2012-11-19 19:54 ` Benjamin Herrenschmidt
2012-11-19 22:47 ` [Qemu-devel] [Qemu-ppc] " David Gibson
2012-11-20 9:26 ` Alexander Graf
2012-11-21 1:10 ` David Gibson
2012-11-13 2:46 ` [Qemu-devel] [PATCH 04/12] pseries: Return the token when we register an RTAS call David Gibson
2012-11-13 2:46 ` [Qemu-devel] [PATCH 05/12] pseries: Allow RTAS tokens without a qemu handler David Gibson
2012-11-13 2:46 ` [Qemu-devel] [PATCH 06/12] pseries: Add tracepoints to the XICS interrupt controller David Gibson
2012-11-13 2:46 ` [Qemu-devel] [PATCH 07/12] pseries: Split xics irq configuration from state information David Gibson
2012-11-13 2:46 ` [Qemu-devel] [PATCH 08/12] target-ppc: Convert ppcemb_tlb_t to use fixed 64-bit RPN David Gibson
2012-11-19 16:26 ` Alexander Graf
2012-11-19 22:48 ` [Qemu-devel] [Qemu-ppc] " David Gibson
2012-11-20 9:29 ` Alexander Graf
2012-11-20 9:53 ` Peter Maydell
2012-11-20 9:55 ` Alexander Graf
2012-11-21 1:14 ` David Gibson
2012-11-21 1:48 ` Alexander Graf
2012-11-21 1:56 ` David Gibson
2012-11-21 10:07 ` Alexander Graf
2012-11-13 2:46 ` [Qemu-devel] [PATCH 09/12] pseries: Implement PAPR NVRAM David Gibson
2012-11-13 2:46 ` [Qemu-devel] [PATCH 10/12] pseries: Update SLOF for NVRAM support David Gibson
2012-11-13 2:46 ` [Qemu-devel] [PATCH 11/12] pseries: Fix bug in PCI MSI allocation David Gibson
2012-11-13 2:47 ` [Qemu-devel] [PATCH 12/12] pseries: Generate unique LIOBNs for PCI host bridges David Gibson
2012-11-19 16:34 ` Alexander Graf
2012-11-19 22:51 ` [Qemu-devel] [Qemu-ppc] " David Gibson
2012-11-20 9:27 ` Alexander Graf
2012-11-20 12:26 ` Michael S. Tsirkin
2012-11-21 0:57 ` David Gibson
2012-11-21 11:34 ` Michael S. Tsirkin
2012-11-21 12:36 ` David Gibson
2012-11-21 13:13 ` Michael S. Tsirkin
2012-11-21 13:21 ` David Gibson
2012-11-21 13:27 ` Alexander Graf
2012-11-21 15:27 ` Michael S. Tsirkin
2012-11-22 2:27 ` David Gibson
2012-11-22 7:23 ` Michael S. Tsirkin
2012-11-22 11:27 ` Alexander Graf
2012-11-22 11:39 ` Michael S. Tsirkin
2012-11-23 4:13 ` David Gibson
2012-11-23 10:53 ` Michael S. Tsirkin [this message]
2012-11-23 12:59 ` David Gibson
2012-11-23 13:44 ` Michael S. Tsirkin
2012-11-23 13:44 ` Alexander Graf
2012-11-23 14:01 ` Michael S. Tsirkin
2012-11-23 14:03 ` Alexander Graf
2012-11-23 14:18 ` Michael S. Tsirkin
2012-11-23 14:27 ` Alexander Graf
2012-11-25 23:24 ` David Gibson
2012-11-21 15:20 ` Michael S. Tsirkin
2012-11-21 5:00 ` David Gibson
2012-11-21 10:09 ` Alexander Graf
2012-11-21 11:40 ` Michael S. Tsirkin
2012-11-19 16:35 ` [Qemu-devel] [0/12] Pending pseries patches Alexander Graf
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=20121123105323.GB7051@redhat.com \
--to=mst@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@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).