On Thu, Dec 19, 2024 at 07:25:19AM -0800, Jakub Kicinski wrote: > On Fri, 20 Dec 2024 00:14:01 +0900 Taehee Yoo wrote: > > > > The bnxt_en disallows setting up both single and multi buffer XDP, but core > > > > checks only single buffer XDP. So, if multi buffer XDP is attaching to > > > > the bnxt_en driver when HDS is enabled, the core can't filter it. > > > > > > Hm. Did you find this in the code, or did Broadcom folks suggest it? > > > AFAICT bnxt supports multi-buf XDP. Is there something in the code > > > that special-cases aggregation but doesn't work for pure HDS? > > > > There were some comments about HDS with XDP in the following thread. > > https://lore.kernel.org/netdev/20241022162359.2713094-1-ap420073@xxxxxxxxx/T/ > > I may misunderstand reviews from Broadcom folks. > > I see it now in bnxt_set_rx_skb_mode. I guess with high MTU > the device splits in some "dumb" way, at a fixed offset.. > You're right, we have to keep the check in the driver, > at least for now. The mutlti-buffer implementation followed what was done at the time in other drivers. Is the 'dumb way' you mention this check? 4717 if (dev->mtu > BNXT_MAX_PAGE_MODE_MTU) { 4718 bp->flags |= BNXT_FLAG_JUMBO; 4719 bp->rx_skb_func = bnxt_rx_multi_page_skb; 4720 } else { 4721 bp->flags |= BNXT_FLAG_NO_AGG_RINGS; 4722 bp->rx_skb_func = bnxt_rx_page_skb; 4723 }