Re: [PATCH net-next 1/3] fbnic: Track BDQ fragment geometry per ring
From: Jakub Kicinski
Date: Fri May 22 2026 - 10:43:13 EST
On Fri, 22 May 2026 13:32:20 +0200 Björn Töpel wrote:
> Fbnic programs BDQs in 4 KiB fragments, but the driver has so far
> decoded buffer IDs using PAGE_SIZE-derived constants. That works while
> HPQ and PPQ both use PAGE_SIZE buffers, but it makes the fragment
> layout global even though the layout really belongs to the queue.
>
> Store the fragment shift on each BDQ and use it when programming
> buffer descriptors and decoding receive completions. HPQ and PPQ still
> get the same PAGE_SIZE-derived value, so this does not change behavior
> yet.
>
> This prepares PPQ to use a larger io_uring zcrx buffer size without
> changing the HPQ layout.
PAGE_SIZE can be 64kB, I'd have expected the first commit to change
"page size" from a compile time constant to a runtime knob.
> - unsigned int pg_idx = FIELD_GET(FBNIC_RCD_AL_BUFF_PAGE_MASK, rcd);
> + struct fbnic_ring *ppq = &qt->sub1;
> + unsigned int pg_idx = fbnic_rcd_bdq_idx(ppq, rcd);
This patch breaks reverse xmas tree in a lot of places.
--
pw-bot: cr