On Fri, 13 Mar 2026 08:13:12 +0100 Björn Töpel wrote: > Some NICs (e.g. bnxt) change their RSS indirection table size based on > the queue count, because the hardware table is a shared resource. The > ethtool core locks ctx->indir_size at context creation, so drivers > have to reject channel changes when RSS contexts exist. > > This series adds resize helpers and wires them up in bnxt.
Sorry Bjorn, I was typing the explanation below and I realized that we may be violating user intent. We should already record the user_size from rss_set_prep_indir() as part of the context (and presumably some netdev state for the main context?) and don't allow shrinking the context below that mark.. Now for the broader audience - my understanding is that the RSS table is a precious resource for most if not all drivers. The direction of this work is to allow user to explicitly specify what RSS table size they want. The Netlink API for RSS already allows users to send tables smaller than what the device reports (Netlink code just "replicates" the table). So if the user asks for X entries the driver should be able to allocate a table of any size as long as its a multiple of X. This series only support "global" resizing but it should be simple to add the state for the driver to mark in the context what table size it actually allocated. The only reason we haven't added the support for that is that it's quite hard to know how to implement it without docs for the FW/HW.. fbnic has fixed table sizes so we can't even prototype there :S Please reply if you'd like to collaborate on adding support for the user-defined RSS context sizing.
