Re: [PATCH net v3 2/2] bnge: fix RSS table sizing for large RX ring counts
From: Simon Horman
Date: Wed Oct 28 2026 - 10:03:58 EST
On Mon, Oct 26, 2026 at 02:57:57PM +0530, Vikas Gupta wrote:
> From: Dharmender Garg <dharmender.garg@xxxxxxxxxxxx>
>
> bnge_adjust_pow_two() adds one block before rounding up to a power of
> two only when the quotient is 0 or 1. A larger quotient that is
> already a power of two is returned unchanged, so 129-192 RX rings
> get a 128-entry RSS indirection table and 257-320 rings a 256-entry
> one. The rings above the table size never receive default RSS traffic.
> bnxt_calc_nr_ring_pages() always adds one, which is correct.
>
> Make bnge_adjust_pow_two() always add one block before rounding up.
>
> bnge_adjust_pow_two() also sizes the RX, RX aggregation, TX and
> completion ring pages. For the default 511-entry rings their page
> counts do not change. The completion ring is sized from more than
> the default depth, so its page count changes where the old code
> dropped a partial page. With 8K ring pages, TPA off and the default
> rings, its budget is 1533 entries and the page count goes from 2 to 4.
> With 4K ring pages and TPA on, when the firmware reports a
> max_aggs_supported of 260 to 387, it goes from 16 to 32.
> In these cases the old completion ring held fewer entries than
> its budget.
>
> Fixes: 627c67f038d2 ("bng_en: Add resource management support")
> Signed-off-by: Dharmender Garg <dharmender.garg@xxxxxxxxxxxx>
> Reviewed-by: Vikas Gupta <vikas.gupta@xxxxxxxxxxxx>
Reviewed-by: Simon Horman <horms@xxxxxxxxxx>