Netdev List
 help / color / mirror / Atom feed
* [BUG] octeontx2-pf: RSS table size is set to 4 instead of 256 entries
@ 2026-09-25 20:10 Jase
  2026-09-26  0:13 ` Jakub Kicinski
  0 siblings, 1 reply; 2+ messages in thread
From: Jase @ 2026-09-25 20:10 UTC (permalink / raw)
  To: netdev; +Cc: sgoutham, gakula, rkannoth, sbhatta, bbhushan2, linux-yocto

[-- Attachment #1: Type: text/plain, Size: 2212 bytes --]

Hello,

On an Asterfusion ET2500 with an OCTEON CN102 A0, the Linux RVU PF
driver reports eight RX queues but nearly all RSS indirection entries
point to queue 0. RX queue and interrupt counters confirm that traffic
is heavily concentrated on that queue, with drops under small-packet load.

In otx2_rss_init(), otx2_common.c assigns:

     rss->rss_size = sizeof(*rss->ind_tbl);

ind_tbl is u32 ind_tbl[MAX_RSS_INDIR_TBL_SIZE], where the maximum is 256.
The expression yields 4, not the entry count. RSS initialization and
ethtool get/set loops use rss_size, while NIX LF allocation requests 256.

Observed with Linux-owned physical ports and eight RX/TX queues:

     ethtool -l <interface>
     ethtool -x <interface>

The indirection table begins 0,1,2,3 and all remaining entries are zero.
Running ethtool -X <interface> equal 8 succeeds but leaves this unchanged,
using either netlink or --disable-netlink.

Changing the assignment to ARRAY_SIZE(rss->ind_tbl), rebuilding and
rebooting produces the expected 0..7 repeating across all 256 entries.
A bidirectional multistream UDP test then increments multiple hardware
RX queues on both ports. Kernel configuration was unchanged. The corrected
kernel completed a subsequent repeated TCP/UDP bridge benchmark.

Runtime-tested source:
   repository: https://git.yoctoproject.org/linux-yocto
   branch: v6.18/standard/cn-sdkv6.12/octeon
   commit: 9a05f15b453377f50632ebbb57c87b7ec3270492
   source version: 6.18.52

This BSP kernel has additional local board/build compatibility changes.
The faulty assignment is also present in the unmodified BSP commit.

Source-only checks on 2026-09-25 also find the same assignment and array
declaration in torvalds/linux commit
aa98230e410f0ed212b6788c46b1e4d49e0ff7ca. I have not boot-tested that
upstream kernel, and have not established the first introducing commit.
The current Yocto BSP branch tip, 27016c83488643e42007ca7a2cfc1ad632f5ab57,
also still contains the faulty assignment (source check only).

The attached one-line patch is proposed for review. The diagnosis and patch
were prepared with AI assistance and validated on the physical device as
summarized above.

Thank you.

Best regards,

Jari Seppälä

[-- Attachment #2: rss-table-size.patch --]
[-- Type: text/x-patch, Size: 373 bytes --]

--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
@@ -394,7 +394,7 @@
 	struct otx2_rss_info *rss = &pfvf->hw.rss_info;
 	int idx, ret = 0;
 
-	rss->rss_size = sizeof(*rss->ind_tbl);
+	rss->rss_size = ARRAY_SIZE(rss->ind_tbl);
 
 	/* Init RSS key if it is not setup already */
 	if (!rss->enable)

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-09-26  0:13 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-25 20:10 [BUG] octeontx2-pf: RSS table size is set to 4 instead of 256 entries Jase
2026-09-26  0:13 ` Jakub Kicinski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox