lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Sat, 6 Apr 2024 09:07:04 +0200
From: Eric Dumazet <edumazet@...gle.com>
To: shironeko@...aguri.club
Cc: Jose Alonso <joalonsof@...il.com>, "David S . Miller" <davem@...emloft.net>, 
	Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, netdev@...r.kernel.org, 
	Soheil Hassas Yeganeh <soheil@...gle.com>, Neal Cardwell <ncardwell@...gle.com>, 
	Yuchung Cheng <ycheng@...gle.com>, eric.dumazet@...il.com
Subject: Re: [PATCH net-next] tcp: get rid of sysctl_tcp_adv_win_scale

On Sat, Apr 6, 2024 at 8:11 AM Eric Dumazet <edumazet@...gle.com> wrote:
>
> On Sat, Apr 6, 2024 at 2:22 AM <shironeko@...aguri.club> wrote:
> >
> > The patch seems to be working, no more dmesg errors or network cut-outs. Thank you!
> >
> > There is however this line printed yesterday afternoon, so seem there's still some weirdness.
> > > TCP: eth0: Driver has suspect GRO implementation, TCP performance may be compromised.
>
> This is great, could you add the following to get some details from the skb ?
>
> diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
> index 1b6cd384001202df5f8e8e8c73adff0db89ece63..e30895a9cc8627cf423c3c5a783d525db0b2db8e
> 100644
> --- a/net/ipv4/tcp_input.c
> +++ b/net/ipv4/tcp_input.c
> @@ -209,9 +209,11 @@ static __cold void tcp_gro_dev_warn(const struct
> sock *sk, const struct sk_buff
>
>         rcu_read_lock();
>         dev = dev_get_by_index_rcu(sock_net(sk), skb->skb_iif);
> -       if (!dev || len >= READ_ONCE(dev->mtu))
> +       if (!dev || len >= READ_ONCE(dev->mtu)) {
> +               skb_dump(KERN_ERR, skb, false);
>                 pr_warn("%s: Driver has suspect GRO implementation,
> TCP performance may be compromised.\n",
>                         dev ? dev->name : "Unknown driver");
> +       }
>         rcu_read_unlock();
>  }

Thinking more about this, I  think this (old) issue comes from the
large skb->head allocated by usbnet,
allowing tcp_add_backlog/skb_try_coalesce() to aggregate multiple
non-gro packets into a single skb.

We could fix this generically from usbnet_skb_return(), instead of
'fixing' all usbnet drivers.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ