From: geoff@hostfission.com
To: Alex Williamson <alex.williamson@redhat.com>
Cc: qemu-devel@nongnu.org, mst@redhat.com, marcel.apfelbaum@gmail.com
Subject: Re: [Qemu-devel] [RFC for-3.2 PATCH 0/7] pcie: Enhanced link speed and width support
Date: Thu, 15 Nov 2018 16:55:02 +1100 [thread overview]
Message-ID: <f3bf1ef5b1be32f03377ca66ba415c70@hostfission.com> (raw)
In-Reply-To: <154222737752.9288.484557356059052047.stgit@gimli.home>
I can confirm that these patches work as expected. Thank you kindly Alex
for your hard work!
Tested-by: Geoffrey McRae <geoff@hostfission.com>
On 2018-11-15 07:50, Alex Williamson wrote:
> QEMU exposes gen1 PCI-express interconnect devices supporting only
> 2.5GT/s and x1 width. It might not seem obvious that a virtual
> bandwidth limitation can result in a real performance degradation, but
> it's been reported that in some configurations assigned GPUs might not
> scale their link speed up to the maximum supported value if the
> downstream port above it only advertises limited link support.
>
> As proposed[1] this series effectively implements virtual link
> negotiation on downstream ports and enhances the generic PCIe root
> port to allow user configurable speeds and widths. The "negotiation"
> simply mirrors the link status of the connected downstream device
> providing the appearance of dynamic link speed scaling to match the
> endpoint device. Not yet implemented from the proposal is support
> for globally updating defaults based on machine type, though the
> foundation is provided here by allowing supporting PCIESlots to
> implement an instance_init callback which can call into a common
> helper for this.
>
> I have not specifically tested migration with this, but we already
> consider LNKSTA to be dynamic and the other changes implemented here
> are static config space changes with no changes being implemented for
> devices using default values, ie. they should be compatible by virtue
> of existing config space migration support.
>
> I think I've covered the required link related registers to support
> PCIe 4.0, but please let me know if I've missed any.
>
> Testing and feedback appreciated, patch 6/7 provides example qemu:arg
> options and requirements to use with existing libvirt. Native libvirt
> support TBD. Thanks,
>
> Alex
>
> [1] https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg03086.html
>
> ---
>
> Alex Williamson (7):
> pcie: Create enums for link speed and width
> pci: Sync PCIe downstream port LNKSTA on read
> qapi: Define PCIe link speed and width properties
> pcie: Add link speed and width fields to PCIESlot
> pcie: Fill PCIESlot link fields to support higher speeds and
> widths
> pcie: Allow generic PCIe root port to specify link speed and
> width
> vfio/pci: Remove PCIe Link Status emulation
>
>
> hw/core/qdev-properties.c | 178
> ++++++++++++++++++++++++++++++++++++
> hw/pci-bridge/gen_pcie_root_port.c | 2
> hw/pci-bridge/pcie_root_port.c | 14 +++
> hw/pci/pci.c | 4 +
> hw/pci/pcie.c | 118 +++++++++++++++++++++++-
> hw/vfio/pci.c | 9 --
> include/hw/pci/pci.h | 13 +++
> include/hw/pci/pcie.h | 1
> include/hw/pci/pcie_port.h | 4 +
> include/hw/pci/pcie_regs.h | 23 ++++-
> include/hw/qdev-properties.h | 8 ++
> qapi/common.json | 42 ++++++++
> 12 files changed, 404 insertions(+), 12 deletions(-)
prev parent reply other threads:[~2018-11-15 5:55 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-14 20:50 [Qemu-devel] [RFC for-3.2 PATCH 0/7] pcie: Enhanced link speed and width support Alex Williamson
2018-11-14 20:50 ` [Qemu-devel] [RFC for-3.2 PATCH 1/7] pcie: Create enums for link speed and width Alex Williamson
2018-11-14 20:50 ` [Qemu-devel] [RFC for-3.2 PATCH 2/7] pci: Sync PCIe downstream port LNKSTA on read Alex Williamson
2018-11-14 20:50 ` [Qemu-devel] [RFC for-3.2 PATCH 3/7] qapi: Define PCIe link speed and width properties Alex Williamson
2018-11-14 20:51 ` [Qemu-devel] [RFC for-3.2 PATCH 4/7] pcie: Add link speed and width fields to PCIESlot Alex Williamson
2018-11-14 20:51 ` [Qemu-devel] [RFC for-3.2 PATCH 5/7] pcie: Fill PCIESlot link fields to support higher speeds and widths Alex Williamson
2018-11-14 20:51 ` [Qemu-devel] [RFC for-3.2 PATCH 6/7] pcie: Allow generic PCIe root port to specify link speed and width Alex Williamson
2018-11-14 20:51 ` [Qemu-devel] [RFC for-3.2 PATCH 7/7] vfio/pci: Remove PCIe Link Status emulation Alex Williamson
2018-11-15 2:18 ` [Qemu-devel] [RFC for-3.2 PATCH 0/7] pcie: Enhanced link speed and width support no-reply
2018-11-15 5:55 ` geoff [this message]
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=f3bf1ef5b1be32f03377ca66ba415c70@hostfission.com \
--to=geoff@hostfission.com \
--cc=alex.williamson@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=qemu-devel@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).