On Tue, Feb 10, 2026 at 05:05:55PM +0000, Kohei Enju wrote: > On Tue, 10 Feb 2026 17:37:23 +0100, Alexander Lobakin wrote: > > > From: Kohei Enju <[email protected]> > > Date: Tue, 10 Feb 2026 15:57:14 +0000 > > > > > iavf sets LIBIE_MAX_MTU as netdev->max_mtu, ignoring vf_res->max_mtu > > > from PF [1]. This allows setting an MTU beyond the actual hardware > > > limit, causing TX queue timeouts [2]. > > > > > > Set correct netdev->max_mtu using vf_res->max_mtu from the PF. > > > > > > Note that currently PF drivers such as ice/i40e set the frame size in > > > vf_res->max_mtu, not MTU. Convert vf_res->max_mtu to MTU before setting > > > netdev->max_mtu. > > > > > > [1] > > > # ip -j -d link show $DEV | jq '.[0].max_mtu' > > > 16356 > > > > > > [2] > > > iavf 0000:00:05.0 enp0s5: NETDEV WATCHDOG: CPU: 1: transmit queue 0 > > > timed out 5692 ms > > > iavf 0000:00:05.0 enp0s5: NIC Link is Up Speed is 10 Gbps Full Duplex > > > iavf 0000:00:05.0 enp0s5: NETDEV WATCHDOG: CPU: 6: transmit queue 3 > > > timed out 5312 ms > > > iavf 0000:00:05.0 enp0s5: NIC Link is Up Speed is 10 Gbps Full Duplex > > > ... > > > > > > Fixes: 5fa4caff59f2 ("iavf: switch to Page Pool") > > > Signed-off-by: Kohei Enju <[email protected]> > > > > Reviewed-by: Alexander Lobakin <[email protected]> > > > > Although I'm not sure the 'Fixes:' tag is correct. Was vs_res->max_mtu > > accounted before switching to Page Pool? If so, then yes, my fault. > > Otherwise, this issue is older than libie. > > You're right that vf_res->mtu was also not accounted before the commit. > > The commit changes: > - netdev->max_mtu = IAVF_MAX_RXBUFFER - IAVF_PACKET_HDR_PAD; > + netdev->max_mtu = LIBIE_MAX_MTU; > ... > -#define IAVF_MAX_RXBUFFER 9728 /* largest size for single descriptor */ > > and thus netdev->max_mtu was already hardcoded, but just because > IAVF_MAX_RXBUFFER was valid for VFs there hadn't been any issues, and > invalid MTU could start to be set after the commit. > > > I'm asking as IIRC before I did set max_mtu to the libie definition, > > there was a hardcoded value already. > > Yea, as far as I checked the value was hardcoded from the beginning > (91c527a55664 ("ethernet/intel: use core min/max MTU checking")). > > Although I'm not attached to the exact commit as the Fixes: tag, I chose > that since (coincidently) that commit made this regression.
That seems like a reasonable approach to me. Reviewed-by: Simon Horman <[email protected]>
