Skip to content

Conversation

@P33M
Copy link
Contributor

@P33M P33M commented May 22, 2024

In an attempt to chase down large request latencies on the pcie1 RC, this seems to be the only knob that gives a measureable positive effect (and at least has no observable negative effects).

It's a hack - in a heavily congested system the limit has no effect, and if an EP chooses to pipeline fewer requests then there's not much that can be done without drip-feeding transfers into the SDC, which will prevent opportunistic reordering or merging.

If a set of read requests are issued by an endpoint, they are streamed
into a resynchronisation FIFO prior to exiting the RC. This FIFO has an
edge case where it can drop QoS for a request to 0 if there's a single
outstanding read request in the FIFO, and another is pushed when the
FIFO is popped. Requests with a QoS of 0 can take hundreds of
microseconds to complete.

By adding an experimentally-determined amount of backpressure on the pop
side, the critical level transition can largely be avoided.

Signed-off-by: Jonathan Bell <[email protected]>
@P33M P33M marked this pull request as ready for review May 22, 2024 10:06
@pelwell pelwell merged commit 0a19b52 into raspberrypi:rpi-6.6.y May 22, 2024
popcornmix added a commit to raspberrypi/firmware that referenced this pull request May 24, 2024
See: raspberrypi/linux#6180

kernel: drivers: staging: bcm2835-isp: Respect caller's stride value
See: raspberrypi/linux#5960

kernel: drivers: pcie-brcmstb: add best-effort workaround for QoS bug on bcm2712
See: raspberrypi/linux#6183

kernel: ARM: dts: Fix camera sync parameters
See: raspberrypi/linux#6184

kernel: Add association between DRM panels and backlight where defined
See: raspberrypi/linux#6177
popcornmix added a commit to raspberrypi/rpi-firmware that referenced this pull request May 24, 2024
See: raspberrypi/linux#6180

kernel: drivers: staging: bcm2835-isp: Respect caller's stride value
See: raspberrypi/linux#5960

kernel: drivers: pcie-brcmstb: add best-effort workaround for QoS bug on bcm2712
See: raspberrypi/linux#6183

kernel: ARM: dts: Fix camera sync parameters
See: raspberrypi/linux#6184

kernel: Add association between DRM panels and backlight where defined
See: raspberrypi/linux#6177
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants