All of lore.kernel.org
 help / color / mirror / Atom feed
* Ice Lake PCIe Read TLPs with random RequesterIDs (RIDs)
@ 2021-09-29 20:40 Eric Pilmore
  2021-10-05 19:55 ` Bjorn Helgaas
  0 siblings, 1 reply; 2+ messages in thread
From: Eric Pilmore @ 2021-09-29 20:40 UTC (permalink / raw)
  To: linux-pci

I am curious to know if anybody working with Ice Lake has seen this
behavior where the MemRD TLPs, from a "cpu(s)" issuing I/O Reads
to an I/O device, are carrying varying RequesterID (RID) values that
don't represent any enumerated devices (per lspci) in the system?
The particular system in use is a Supermicro box with 2 CPU sockets,
each socket comprised of a 16 core (2 thread/core) processor. I have
not seen any correlation between issuing the I/O Read operation from
a particular core and the RID that shows up in the respective MemRD
TLP. Normally, I would have expected the RID to have been either 0x0000
or the BDF of the respective Root Port into which the device being
read was plugged into.

I assume this behavior is intended to increase I/O bandwidth and reduce
latency by allowing even more outstanding I/O Reads than is normally
afforded by the (per-device) Tag field of a MemRD TLP.

I have been searching around, but having trouble finding specifics about
this behavior in any specs or micro-architecture documents. If anybody
knows of any pointers it would be greatly appreciated.

Thanks in advance!

Eric



-- 
Eric Pilmore
epilmore@gigaio.com
http://gigaio.com
Phone: (858) 775 2514

This e-mail message is intended only for the individual(s) to whom
it is addressed and may contain information that is privileged,
confidential, proprietary, or otherwise exempt from disclosure under
applicable law. If you believe you have received this message in
error, please advise the sender by return e-mail and delete it from
your mailbox.
Thank you.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Ice Lake PCIe Read TLPs with random RequesterIDs (RIDs)
  2021-09-29 20:40 Ice Lake PCIe Read TLPs with random RequesterIDs (RIDs) Eric Pilmore
@ 2021-10-05 19:55 ` Bjorn Helgaas
  0 siblings, 0 replies; 2+ messages in thread
From: Bjorn Helgaas @ 2021-10-05 19:55 UTC (permalink / raw)
  To: Eric Pilmore; +Cc: linux-pci, Ashok Raj

[+cc Ashok]

On Wed, Sep 29, 2021 at 01:40:41PM -0700, Eric Pilmore wrote:
> I am curious to know if anybody working with Ice Lake has seen this
> behavior where the MemRD TLPs, from a "cpu(s)" issuing I/O Reads
> to an I/O device, are carrying varying RequesterID (RID) values that
> don't represent any enumerated devices (per lspci) in the system?
> The particular system in use is a Supermicro box with 2 CPU sockets,
> each socket comprised of a 16 core (2 thread/core) processor. I have
> not seen any correlation between issuing the I/O Read operation from
> a particular core and the RID that shows up in the respective MemRD
> TLP. Normally, I would have expected the RID to have been either 0x0000
> or the BDF of the respective Root Port into which the device being
> read was plugged into.
> 
> I assume this behavior is intended to increase I/O bandwidth and reduce
> latency by allowing even more outstanding I/O Reads than is normally
> afforded by the (per-device) Tag field of a MemRD TLP.
> 
> I have been searching around, but having trouble finding specifics about
> this behavior in any specs or micro-architecture documents. If anybody
> knows of any pointers it would be greatly appreciated.

I don't know anything about this.  Added Ashok in case he can shed any
light.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-10-05 19:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-29 20:40 Ice Lake PCIe Read TLPs with random RequesterIDs (RIDs) Eric Pilmore
2021-10-05 19:55 ` Bjorn Helgaas

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.