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 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.