From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Lukas Wunner <lukas@wunner.de>
Cc: "Niklas Schnelle" <niks@kernel.org>,
"Niklas Schnelle" <schnelle@linux.ibm.com>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Bjorn Helgaas" <bhelgaas@google.com>,
linux-pci@vger.kernel.org, "Rob Herring" <robh@kernel.org>,
"Krzysztof Wilczy??ski" <kw@linux.com>,
"Maciej W . Rozycki" <macro@orcam.me.uk>,
"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
"Alexandru Gagniuc" <mr.nuke.me@gmail.com>,
"Krishna chaitanya chundru" <quic_krichai@quicinc.com>,
"Srinivas Pandruvada" <srinivas.pandruvada@linux.intel.com>,
"Rafael J . Wysocki" <rafael@kernel.org>,
linux-pm@vger.kernel.org,
"Smita Koralahalli" <Smita.KoralahalliChannabasappa@amd.com>,
LKML <linux-kernel@vger.kernel.org>,
"Daniel Lezcano" <daniel.lezcano@linaro.org>,
"Amit Kucheria" <amitk@kernel.org>,
"Zhang Rui" <rui.zhang@intel.com>,
"Christophe JAILLET" <christophe.jaillet@wanadoo.fr>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>
Subject: Re: [PATCH] PCI/portdrv: Disable bwctrl service if port is fixed at 2.5 GT/s
Date: Mon, 16 Dec 2024 08:57:19 +0200 [thread overview]
Message-ID: <20241216065719.GA3713119@black.fi.intel.com> (raw)
In-Reply-To: <Z1vyLNW20RuVaZe5@wunner.de>
On Fri, Dec 13, 2024 at 09:37:00AM +0100, Lukas Wunner wrote:
> On Thu, Dec 12, 2024 at 09:40:04PM +0100, Niklas Schnelle wrote:
> > On Thu, 2024-12-12 at 13:32 +0100, Lukas Wunner wrote:
> > > pcie_get_supported_speeds() is used to fill in the supported_speeds
> > > field in struct pci_dev.
> > >
> > > And that field is used in a number of places (exposure of the max link
> > > speed in sysfs, delay handling in pci_bridge_wait_for_secondary_bus(),
> > > link tuning in radeon/amdgpu drivers, etc).
> >
> > Side question. If this is used in radeon/amdgpu could detecting the
> > thunderbolt port's max link speed as 2.5 GT/s cause issues for external
> > GPUs?
>
> I don't think so:
>
> An attached Thunderbolt gadget (e.g. eGPU) is visible to the OS as a
> PCIe switch. A portion of the Switch Downstream Ports is used to
> attach Endpoints (e.g. GPU) and the remainder is used for tunneling,
> i.e. to extend the hierarchy further if multiple Thunderbolt devices
> are daisy-chained.
>
> My expectation is that the Max Link Speed is 8 GT/s on those Downstream
> Ports leading to Endpoints and 2.5 GT/s on those Downstream Ports used
> for tunneling (to conform with the USB4/Thunderbolt spec). In other words,
> the Supported Link Speeds is the same on all of them, but Max Link Speed
> is reduced to 2.5 GT/s on so-called PCIe Adapters (in USB4/Thunderbolt
> terminology).
>
> The PCIe Adapters encapsulate PCIe TLPs into Thunderbolt packets and
> send them over the Thunderbolt fabric, and similarly decapsulate TLPs
> received from the fabric.
>
> There are some illustrations available here which explain the distinction
> between the two types of Downstream Ports:
>
> https://developer.apple.com/library/archive/documentation/HardwareDrivers/Conceptual/ThunderboltDevGuide/Basics/Basics.html
>
> I'm hoping Mika or Ilpo can verify the above information. I have
> lspci dumps here of MeteorLake-P and BarlowRidge host controllers,
> but without any attached USB4/Thunderbolt gadgets.
That's right.
The bandwidth in the PCIe tunnel is dynamic but the adapters announce Gen 1
x 4 according to USB4 spec. You can get up to the 90% of the available
TB/USB4 link bandwidth for PCIe depending what is being tunneled. Graphics
drivers should not really look for these "virtual" PCIe links but instead
the native link if they need to.
next prev parent reply other threads:[~2024-12-16 6:57 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-07 18:44 [PATCH] PCI/portdrv: Disable bwctrl service if port is fixed at 2.5 GT/s Niklas Schnelle
2024-12-07 19:12 ` Niklas Schnelle
2024-12-09 12:59 ` Ilpo Järvinen
2024-12-09 15:42 ` Mika Westerberg
2024-12-10 10:05 ` Lukas Wunner
2024-12-10 20:45 ` Niklas Schnelle
2024-12-11 7:57 ` Lukas Wunner
2024-12-11 13:07 ` Ilpo Järvinen
2024-12-12 9:08 ` Lukas Wunner
2024-12-12 9:17 ` Niklas Schnelle
2024-12-12 12:32 ` Lukas Wunner
2024-12-12 14:12 ` Niklas Schnelle
2024-12-12 20:40 ` Niklas Schnelle
2024-12-13 8:37 ` Lukas Wunner
2024-12-16 6:57 ` Mika Westerberg [this message]
2024-12-11 17:14 ` Jonathan Cameron
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=20241216065719.GA3713119@black.fi.intel.com \
--to=mika.westerberg@linux.intel.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=Smita.KoralahalliChannabasappa@amd.com \
--cc=amitk@kernel.org \
--cc=bhelgaas@google.com \
--cc=christophe.jaillet@wanadoo.fr \
--cc=daniel.lezcano@linaro.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=kw@linux.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=lukas@wunner.de \
--cc=macro@orcam.me.uk \
--cc=mr.nuke.me@gmail.com \
--cc=niks@kernel.org \
--cc=quic_krichai@quicinc.com \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=rui.zhang@intel.com \
--cc=schnelle@linux.ibm.com \
--cc=srinivas.pandruvada@linux.intel.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