qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: "qemu-ppc@nongnu.org List" <qemu-ppc@nongnu.org>,
	qemu-devel qemu-devel <qemu-devel@nongnu.org>,
	David Gibson <david@gibson.dropbear.id.au>
Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH 12/12] pseries: Generate unique LIOBNs for PCI host bridges
Date: Thu, 22 Nov 2012 12:27:49 +0100	[thread overview]
Message-ID: <3190D38B-7409-455C-89C7-CD1F141EF19A@suse.de> (raw)
In-Reply-To: <20121122072303.GA23260@redhat.com>



On 22.11.2012, at 08:23, "Michael S. Tsirkin" <mst@redhat.com> 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.

IIRC it's required for fault isolation.

Alex

> 
>>> If user wants to play with low level detail such as PHBs I don't see why
>>> it's not reasonable to require full specification.
>>> 
>>>> How do we assign PCI slot IDs today when all you do is a -device?
>>>> This should probably follow the same scheme.
>>>> 
>>>> 
>>>> Alex
>>> 
>>> What we do is find a first free slow. But it's exactly why I worry:
>>> changing pci addresses between qemu releases has been a source of pain
>>> and compatibility hassles in the past.
>>> The problem would be more manageable if you simply reserve some fixed
>>> addresses for internal use, like we reserve slots for VGA and IDE,
>>> though even that becomes a problem as we switch to q35.
>>> 
>> 
>> -- 
>> 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

  reply	other threads:[~2012-11-22 11:27 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 [this message]
2012-11-22 11:39                               ` Michael S. Tsirkin
2012-11-23  4:13                             ` David Gibson
2012-11-23 10:53                               ` Michael S. Tsirkin
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=3190D38B-7409-455C-89C7-CD1F141EF19A@suse.de \
    --to=agraf@suse.de \
    --cc=david@gibson.dropbear.id.au \
    --cc=mst@redhat.com \
    --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).