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
>
next prev 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).