Message ID | 20250311092820.542148-1-kuba@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | e016cf5f39e9c53e274a7b7122a949d8839b8782 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] netdevsim: 'support' multi-buf XDP | expand |
On Tue, Mar 11, 2025 at 10:28:20AM +0100, Jakub Kicinski wrote: > Don't error out on large MTU if XDP is multi-buf. > The ping test now tests ping with XDP and high MTU. > netdevsim doesn't actually run the prog (yet?) so > it doesn't matter if the prog was multi-buf.. > > Signed-off-by: Jakub Kicinski <kuba@kernel.org> > --- > drivers/net/netdevsim/bpf.c | 3 ++- > drivers/net/netdevsim/netdev.c | 3 ++- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/netdevsim/bpf.c b/drivers/net/netdevsim/bpf.c > index 608953d4f98d..49537d3c4120 100644 > --- a/drivers/net/netdevsim/bpf.c > +++ b/drivers/net/netdevsim/bpf.c > @@ -296,7 +296,8 @@ static int nsim_setup_prog_checks(struct netdevsim *ns, struct netdev_bpf *bpf) > NSIM_EA(bpf->extack, "attempt to load offloaded prog to drv"); > return -EINVAL; > } > - if (ns->netdev->mtu > NSIM_XDP_MAX_MTU) { > + if (bpf->prog && !bpf->prog->aux->xdp_has_frags && > + ns->netdev->mtu > NSIM_XDP_MAX_MTU) { > NSIM_EA(bpf->extack, "MTU too large w/ XDP enabled"); Would it make sense to extend this error message to indicate that single-buf XDP is being used? For example: "MTU too large w/ single-buf XDP enabled"? (Please consider this as a suggestion only.) > return -EINVAL; > } > diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c > index d71fd2907cc8..a5e5e064927d 100644 > --- a/drivers/net/netdevsim/netdev.c > +++ b/drivers/net/netdevsim/netdev.c > @@ -116,7 +116,8 @@ static int nsim_change_mtu(struct net_device *dev, int new_mtu) > { > struct netdevsim *ns = netdev_priv(dev); > > - if (ns->xdp.prog && new_mtu > NSIM_XDP_MAX_MTU) > + if (ns->xdp.prog && !ns->xdp.prog->aux->xdp_has_frags && > + new_mtu > NSIM_XDP_MAX_MTU) > return -EBUSY; > > WRITE_ONCE(dev->mtu, new_mtu); > -- > 2.48.1 > > Thanks, Reviewed-by: Michal Kubiak <michal.kubiak@intel.com>
On Tue, 11 Mar 2025 11:51:31 +0100 Michal Kubiak wrote: > > - if (ns->netdev->mtu > NSIM_XDP_MAX_MTU) { > > + if (bpf->prog && !bpf->prog->aux->xdp_has_frags && > > + ns->netdev->mtu > NSIM_XDP_MAX_MTU) { > > NSIM_EA(bpf->extack, "MTU too large w/ XDP enabled"); > > Would it make sense to extend this error message to indicate that single-buf > XDP is being used? For example: "MTU too large w/ single-buf XDP enabled"? > (Please consider this as a suggestion only.) Fair point, tho I'd rather push as is. It fixes the CI and some other tests match on this exact error message so I'd need to fully retest the respin..
Hello: This patch was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Tue, 11 Mar 2025 10:28:20 +0100 you wrote: > Don't error out on large MTU if XDP is multi-buf. > The ping test now tests ping with XDP and high MTU. > netdevsim doesn't actually run the prog (yet?) so > it doesn't matter if the prog was multi-buf.. > > Signed-off-by: Jakub Kicinski <kuba@kernel.org> > > [...] Here is the summary with links: - [net-next] netdevsim: 'support' multi-buf XDP https://git.kernel.org/netdev/net-next/c/e016cf5f39e9 You are awesome, thank you!
diff --git a/drivers/net/netdevsim/bpf.c b/drivers/net/netdevsim/bpf.c index 608953d4f98d..49537d3c4120 100644 --- a/drivers/net/netdevsim/bpf.c +++ b/drivers/net/netdevsim/bpf.c @@ -296,7 +296,8 @@ static int nsim_setup_prog_checks(struct netdevsim *ns, struct netdev_bpf *bpf) NSIM_EA(bpf->extack, "attempt to load offloaded prog to drv"); return -EINVAL; } - if (ns->netdev->mtu > NSIM_XDP_MAX_MTU) { + if (bpf->prog && !bpf->prog->aux->xdp_has_frags && + ns->netdev->mtu > NSIM_XDP_MAX_MTU) { NSIM_EA(bpf->extack, "MTU too large w/ XDP enabled"); return -EINVAL; } diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c index d71fd2907cc8..a5e5e064927d 100644 --- a/drivers/net/netdevsim/netdev.c +++ b/drivers/net/netdevsim/netdev.c @@ -116,7 +116,8 @@ static int nsim_change_mtu(struct net_device *dev, int new_mtu) { struct netdevsim *ns = netdev_priv(dev); - if (ns->xdp.prog && new_mtu > NSIM_XDP_MAX_MTU) + if (ns->xdp.prog && !ns->xdp.prog->aux->xdp_has_frags && + new_mtu > NSIM_XDP_MAX_MTU) return -EBUSY; WRITE_ONCE(dev->mtu, new_mtu);
Don't error out on large MTU if XDP is multi-buf. The ping test now tests ping with XDP and high MTU. netdevsim doesn't actually run the prog (yet?) so it doesn't matter if the prog was multi-buf.. Signed-off-by: Jakub Kicinski <kuba@kernel.org> --- drivers/net/netdevsim/bpf.c | 3 ++- drivers/net/netdevsim/netdev.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-)