Subject: Re: [PATCH net-next 1/3] fbnic: Track BDQ fragment geometry per ring

From: Jakub Kicinski <[email-masked]>
Date: Fri, 22 May 2026 06:57:07 -0700

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