qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: arei.gonglei@huawei.com
Cc: peter.crosthwaite@xilinx.com, weidong.huang@huawei.com,
	marcel.a@redhat.com, armbru@redhat.com, luonengjun@huawei.com,
	qemu-devel@nongnu.org, peter.huangpeng@huawei.com,
	imammedo@redhat.com, pbonzini@redhat.com, afaerber@suse.de
Subject: Re: [Qemu-devel] [PATCH v3 0/3] add check for PCIe root ports and downstream ports
Date: Mon, 29 Sep 2014 19:14:06 +0300	[thread overview]
Message-ID: <20140929161406.GB21268@redhat.com> (raw)
In-Reply-To: <1409578159-9576-1-git-send-email-arei.gonglei@huawei.com>

On Mon, Sep 01, 2014 at 09:29:16PM +0800, arei.gonglei@huawei.com wrote:
> From: Gonglei <arei.gonglei@huawei.com>
> 
> Root ports and downstream ports of switches are the hot
> pluggable ports in a PCI Express hierarchy.
> PCI Express supports chip-to-chip interconnect, a PCIe link can
> only connect one pci device/Switch/EndPoint or PCI-bridge.
> 
> 7.3. Configuration Transaction Rules (PCI Express specification 3.0)
> 7.3.1. Device Number
> 
> Downstream Ports that do not have ARI Forwarding enabled must
> associate only Device 0 with the device attached to the Logical Bus
> representing the Link from the Port.
> 
> In QEMU, ARI Forwarding is enabled defualt at emulation of PCIe
> ports. ARI Forwarding enable setting at firmware/OS Control handoff.
> If the bit is Set when a non-ARI Device is present, the non-ARI
> Device can respond to Configuration Space accesses under what it
> interprets as being different Device Numbers, and its Functions can
> be aliased under multiple Device Numbers, generally leading to
> undesired behavior.
> 
> So, for pci devices attached in pcie root ports or downstream pots,
> we shoud assure that its slot is non-zero. For pcie devcies, which
> ARP capbility is not enabled, we also should assure that its slot
> is non-zero.

So what is this patchset about?
Is there a broken configuration that this helps prevent?
Can you show the command-line please?

In particular, non-express devices behind an express bus
shouldn't exist according to spec, but do in practice, and guests
seem to be able to handle them.

> Changes since v2:
>  - make patch 1/3 more simpler and safer.(Hu Tao)
>  - change check logic from pci.c to pcie.c and change function's name
>  - judge devcies' ARI capbility instead of PCIe ports' ARI Forwarding
>    (Michael)
>  - add trivial patch 3/3
>  - update patch's commit messages and code comments.
> 
> Thanks for your reviewing.
>  
> Changes since v1:
>  - using object_dynamic_cast() instead of simple string comparing (Paolo)
>  - add ARI Forwarding enable bit check
>  - using pcie_cap_get_type() instead of simple string comparing (Marcel)
>  - fix some other comments.
> 
> Gonglei (3):
>   qdev: Introduce a function to get qbus's parent
>   pcie: add check for ari capability of pcie devices
>   pcie: remove confused comments
> 
>  hw/core/qdev.c         |  9 ++++++++
>  hw/pci/pci.c           |  4 ++++
>  hw/pci/pcie.c          | 59 +++++++++++++++++++++++++++++++++++++++++++-------
>  include/hw/pci/pcie.h  |  1 +
>  include/hw/qdev-core.h |  1 +
>  5 files changed, 66 insertions(+), 8 deletions(-)
> 
> -- 
> 1.7.12.4
> 

  parent reply	other threads:[~2014-09-29 16:11 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-01 13:29 [Qemu-devel] [PATCH v3 0/3] add check for PCIe root ports and downstream ports arei.gonglei
2014-09-01 13:29 ` [Qemu-devel] [PATCH v3 1/3] qdev: Introduce a function to get qbus's parent arei.gonglei
2014-09-01 13:29 ` [Qemu-devel] [PATCH v3 2/3] pcie: add check for ari capability of pcie devices arei.gonglei
2014-09-29 16:09   ` Michael S. Tsirkin
2014-09-30  6:39     ` Gonglei (Arei)
2014-09-01 13:29 ` [Qemu-devel] [PATCH v3 3/3] pcie: remove confused comments arei.gonglei
2014-09-04 12:09 ` [Qemu-devel] [PATCH v3 0/3] add check for PCIe root ports and downstream ports Gonglei (Arei)
2014-09-10  1:40   ` Gonglei (Arei)
2014-09-29 10:51 ` Gonglei (Arei)
2014-09-29 16:14 ` Michael S. Tsirkin [this message]
2014-09-30  7:03   ` Gonglei (Arei)

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=20140929161406.GB21268@redhat.com \
    --to=mst@redhat.com \
    --cc=afaerber@suse.de \
    --cc=arei.gonglei@huawei.com \
    --cc=armbru@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=luonengjun@huawei.com \
    --cc=marcel.a@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.crosthwaite@xilinx.com \
    --cc=peter.huangpeng@huawei.com \
    --cc=qemu-devel@nongnu.org \
    --cc=weidong.huang@huawei.com \
    /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).