Why is Thunderbolt 3 limited to 2.5 GT/s on Linux?

Mika Westerberg mika.westerberg at linux.intel.com
Fri Jun 28 11:34:15 UTC 2019


On Fri, Jun 28, 2019 at 01:08:07PM +0200, Timur Kristóf wrote:
> Hi Mika,
> 
> Thanks for your quick reply.
> 
> > > 1. Why are there four bridge devices? 04:00.0, 04:01.0 and 04:02.0
> > > look
> > > superfluous to me and nothing is connected to them. It actually
> > > gives
> > > me the feeling that the TB3 driver creates 4 devices with 2.5 GT/s
> > > each, instead of one device that can do the full 8 GT/s.
> > 
> > Because it is standard PCIe switch with one upstream port and n
> > downstream ports.
> 
> Sure, though in this case 3 of those downstream ports are not exposed
> by the hardware, so it's a bit surprising to see them there.

They lead to other peripherals on the TBT host router such as the TBT
controller and xHCI. Also there are two downstream ports for extension
from which you eGPU is using one.

> Why I asked about it is because I have a suspicion that maybe the
> bandwidth is allocated equally between the 4 downstream ports, even
> though only one of them is used.
> 
> > 
> > > 2. Why are some of the bridge devices only capable of 2.5 GT/s
> > > according to lspci?
> > 
> > You need to talk to lspci maintainer.
> 
> Sorry if the question was unclear.
> It's not only lspci, the kernel also prints a warning about it.
> 
> Like I said the device really is limited to 2.5 GT/s even though it
> should be able to do 8 GT/s.

There is Thunderbolt link between the host router (your host system) and
the eGPU box. That link is not limited to 2.5 GT/s so even if the slot
claims it is PCI gen1 the actual bandwidth can be much higher because of
the virtual link.

> > > 3. Is it possible to manually set them to 8 GT/s?
> > 
> > No idea.
> > 
> > Are you actually seeing some performance issue because of this or are
> > you just curious?
> 
> Yes, I see a noticable performance hit: some games have very low frame
> rate while neither the CPU nor the GPU are fully utilized.

Is that problem in Linux only or do you see the same issue in Windows as
well?


More information about the dri-devel mailing list