hubbub60_pe...er_bandwidth(9)
β¨ hubbub60_pe...er_bandwidth(9) β¨
okay so this is from the Kernel API Manual (yes, the actual kernel manual, we're fancy now π
) and today's main character is hubbub60_perfmon_arm_measuring_out_of_order_bandwidth β bestie, the name is a whole paragraph, I know, breathe π«Ά
πΈ NAME πΈ
hubbub60_perfmon_arm_measuring_out_of_order_bandwidth β literally just configures the out-of-order BW counter. that's it, that's the whole job. periodt β¨
π SYNOPSIS π
void hubbub60_perfmon_arm_measuring_out_of_order_bandwidth (struct hubbub *hubbub );
π¦ ARGUMENTS π¦
hubbubβ pointer to the hubbub hardware instance. that's your hardware bestie, hand it over and we cook π₯
π DESCRIPTION π
So the vibe here is: we're setting up the performance monitoring counters to measure out-of-order (peak prefetch) bandwidth using hardware counters 0, 1, and 4. Three counters, three little jobs, one iconic trio π
- Counter 0: the count-off counter β it counts response-valid events and gates the measurement window once it reaches its target value. lowkey the bouncer of the group, decides when the party starts πͺ
- Counter 1: the data counter β tracks total data received during the measurement period, and generates an interrupt when measurement completes. the main character, fr fr, it's the one that actually tells you stuff π
- Counter 4: the duration timer β measures elapsed time in refclk cycles. our lil stopwatch β±οΈ
UTM_FILTER_SEL is set to 0 so that isolation comes from OTG-vblank gating rather than the silicon-broken HW filter. yes bestie, silicon-broken β we are not trusting that hardware filter, it's giving broken and we're moving around it π
The first 200 prefetch requests are skipped (that's the ramp-up, warm-up era, we don't count those), and the subsequent 200 are the measurement window. 200 warm-up + 200 real ones. math is mathing β¨
β οΈ important caveat, do not skip: this function configures counters only. it does not turn them on. call hubbub60_perfmon_start_measuring_out_of_order_bandwidth to actually enable them. no cap, if you forget this step literally nothing happens and you'll be staring at zeros wondering why π
π SEE ALSO π
- Kernel file
./drivers/gpu/drm/amd/display/dc/hubbub/dcn60/dcn60_hubbub.cβ go read the source, iykwim π§ hubbub60_perfmon_start_measuring_out_of_order_bandwidth(9)β the one that actually enables everything π₯hubbub60_perfmon_get_out_of_order_bandwidth_mbps(9)β the one that gets you the number in Mbps π
and that's the whole page, bestie π this edition came from ./drivers/gpu/drm/amd/display/... and it's dated October 2026 β mark your calendars, she's timeless π slay, go measure some bandwidth π¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms