[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 0/3] add check for PCIe root ports and downst
From: |
Michael S. Tsirkin |
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 |
On Mon, Sep 01, 2014 at 09:29:16PM +0800, address@hidden wrote:
> From: Gonglei <address@hidden>
>
> 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
>
- [Qemu-devel] [PATCH v3 0/3] add check for PCIe root ports and downstream ports, arei.gonglei, 2014/09/01
- [Qemu-devel] [PATCH v3 3/3] pcie: remove confused comments, arei.gonglei, 2014/09/01
- [Qemu-devel] [PATCH v3 2/3] pcie: add check for ari capability of pcie devices, arei.gonglei, 2014/09/01
- [Qemu-devel] [PATCH v3 1/3] qdev: Introduce a function to get qbus's parent, arei.gonglei, 2014/09/01
- Re: [Qemu-devel] [PATCH v3 0/3] add check for PCIe root ports and downstream ports, Gonglei (Arei), 2014/09/04
- Re: [Qemu-devel] [PATCH v3 0/3] add check for PCIe root ports and downstream ports, Gonglei (Arei), 2014/09/29
- Re: [Qemu-devel] [PATCH v3 0/3] add check for PCIe root ports and downstream ports,
Michael S. Tsirkin <=