Re: [PATCH 1/5] virtio-net: fix overflow inside virtnet_rq_alloc

2024-10-17 Thread Paolo Abeni
On 10/14/24 05:12, Xuan Zhuo wrote: When the frag just got a page, then may lead to regression on VM. Specially if the sysctl net.core.high_order_alloc_disable value is 1, then the frag always get a page when do refill. Which could see reliable crashes or scp failure (scp a file 100M in size

Re: [PATCH net-next v6 10/10] virtio_net: xsk: rx: free the unused xsk buffer

2024-06-20 Thread Paolo Abeni
On Tue, 2024-06-18 at 15:56 +0800, Xuan Zhuo wrote: > Release the xsk buffer, when the queue is releasing or the queue is > resizing. > > Signed-off-by: Xuan Zhuo > --- > drivers/net/virtio_net.c | 5 + > 1 file changed, 5 insertions(+) > > diff --git a/drivers/net/virtio_net.c b/drivers/ne

Re: [PATCH net-next v6 09/10] virtio_net: xsk: rx: support recv merge mode

2024-06-20 Thread Paolo Abeni
On Tue, 2024-06-18 at 15:56 +0800, Xuan Zhuo wrote: > Support AF-XDP for merge mode. > > Signed-off-by: Xuan Zhuo > --- > drivers/net/virtio_net.c | 139 +++ > 1 file changed, 139 insertions(+) > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_ne

Re: [PATCH net-next v6 07/10] virtio_net: xsk: rx: support fill with xsk buffer

2024-06-20 Thread Paolo Abeni
Hi, On Tue, 2024-06-18 at 15:56 +0800, Xuan Zhuo wrote: > @@ -1032,6 +1034,53 @@ static void check_sq_full_and_disable(struct > virtnet_info *vi, > } > } > > +static void sg_fill_dma(struct scatterlist *sg, dma_addr_t addr, u32 len) > +{ > + sg->dma_address = addr; > + sg->length

Re: [PATCH net v3 2/2] virtio_net: fix a spurious deadlock issue

2024-05-30 Thread Paolo Abeni
On Tue, 2024-05-28 at 21:41 +0800, Heng Qi wrote: > When the following snippet is run, lockdep will report a deadlock[1]. > > /* Acquire all queues dim_locks */ > for (i = 0; i < vi->max_queue_pairs; i++) > mutex_lock(&vi->rq[i].dim_lock); > > There's no deadlock here because the vq

Re: [PATCH net v2 2/2] Revert "virtio_net: Add a lock for per queue RX coalesce"

2024-05-28 Thread Paolo Abeni
On Tue, 2024-05-28 at 11:06 +0800, Heng Qi wrote: > On Mon, 27 May 2024 12:42:43 +0200, Paolo Abeni wrote: > > On Thu, 2024-05-23 at 15:46 +0800, Heng Qi wrote: > > > This reverts commit 4d4ac2ececd3c42a08dd32a6e3a4aaf25f7efe44. > > > > > > When the following

Re: [PATCH net v2 2/2] Revert "virtio_net: Add a lock for per queue RX coalesce"

2024-05-27 Thread Paolo Abeni
On Thu, 2024-05-23 at 15:46 +0800, Heng Qi wrote: > This reverts commit 4d4ac2ececd3c42a08dd32a6e3a4aaf25f7efe44. > > When the following snippet is run, lockdep will report a deadlock[1]. > > /* Acquire all queues dim_locks */ > for (i = 0; i < vi->max_queue_pairs; i++) > mutex_lock

Re: [PATCH net-next] virtio-net: synchronize operstate with admin state on up/down

2024-05-21 Thread Paolo Abeni
On Mon, 2024-05-20 at 09:03 +0800, Jason Wang wrote: > This patch synchronize operstate with admin state per RFC2863. > > This is done by trying to toggle the carrier upon open/close and > synchronize with the config change work. This allows propagate status > correctly to stacked devices like: >

Re: [PATCH vhost v3 0/4] virtio_net: rx enable premapped mode by default

2024-04-26 Thread Paolo Abeni
On Wed, 2024-04-24 at 16:16 +0800, Xuan Zhuo wrote: > Actually, for the virtio drivers, we can enable premapped mode whatever > the value of use_dma_api. Because we provide the virtio dma apis. > So the driver can enable premapped mode unconditionally. > > This patch set makes the big mode of virt

Re: [PATCH net-next v5 0/6] Remove RTNL lock protection of CVQ

2024-04-26 Thread Paolo Abeni
On Tue, 2024-04-23 at 06:57 +0300, Daniel Jurgens wrote: > Currently the buffer used for control VQ commands is protected by the > RTNL lock. Previously this wasn't a major concern because the control VQ > was only used during device setup and user interaction. With the recent > addition of dynamic

Re: [PATCH net-next v5 5/6] virtio_net: Add a lock for per queue RX coalesce

2024-04-26 Thread Paolo Abeni
On Tue, 2024-04-23 at 06:57 +0300, Daniel Jurgens wrote: > Once the RTNL locking around the control buffer is removed there can be > contention on the per queue RX interrupt coalescing data. Use a mutex > per queue. A mutex is required because virtnet_send_command can sleep. > > Signed-off-by: Dan

Re: [PATCH net-next v5 3/6] virtio_net: Add a lock for the command VQ.

2024-04-26 Thread Paolo Abeni
On Tue, 2024-04-23 at 06:57 +0300, Daniel Jurgens wrote: > The command VQ will no longer be protected by the RTNL lock. Use a > mutex to protect the control buffer header and the VQ. > > Signed-off-by: Daniel Jurgens > Reviewed-by: Jiri Pirko > --- > drivers/net/virtio_net.c | 12 ++-- >

Re: [PATCH net-next v5 2/6] virtio_net: Remove command data from control_buf

2024-04-26 Thread Paolo Abeni
On Tue, 2024-04-23 at 06:57 +0300, Daniel Jurgens wrote: > Allocate memory for the data when it's used. Ideally the could be on the Minor nit: 'buffer' or 'struct' is missing here No need to repost just for this. Thank, Paolo

Re: [PATCH net-next v4 3/6] virtio_net: Add a lock for the command VQ.

2024-04-18 Thread Paolo Abeni
On Thu, 2024-04-18 at 15:38 +, Dan Jurgens wrote: > > From: Paolo Abeni > > Sent: Thursday, April 18, 2024 5:57 AM > > On Thu, 2024-04-18 at 15:36 +0800, Heng Qi wrote: > > > > > > 在 2024/4/18 下午2:42, Jason Wang 写道: > > > > On Wed, A

Re: [PATCH net-next v4 3/6] virtio_net: Add a lock for the command VQ.

2024-04-18 Thread Paolo Abeni
On Thu, 2024-04-18 at 15:36 +0800, Heng Qi wrote: > > 在 2024/4/18 下午2:42, Jason Wang 写道: > > On Wed, Apr 17, 2024 at 3:31 AM Daniel Jurgens wrote: > > > The command VQ will no longer be protected by the RTNL lock. Use a > > > spinlock to protect the control buffer header and the VQ. > > > > > >

Re: [PATCH net-next v2 2/3] vsock/virtio: add SIOCOUTQ support for all virtio based transports

2024-04-11 Thread Paolo Abeni
On Mon, 2024-04-08 at 15:37 +0200, Luigi Leonardi wrote: > This patch introduce support for stream_bytes_unsent and > seqpacket_bytes_unsent ioctl for virtio_transport, vhost_vsock > and vsock_loopback. > > For all transports the unsent bytes counter is incremented > in virtio_transport_send_pkt_i

Re: [PATCH net v2] virtio-net: fix possible dim status unrecoverable

2024-03-28 Thread Paolo Abeni
On Tue, 2024-03-26 at 14:25 +0800, Heng Qi wrote: > When the dim worker is scheduled, if it fails to acquire the lock, > dim may not be able to return to the working state later. > > For example, the following single queue scenario: > 1. The dim worker of rxq0 is scheduled, and the dim status is

Re: [PATCH net-next v5 0/9] virtio-net: support device stats

2024-03-19 Thread Paolo Abeni
On Mon, 2024-03-18 at 13:19 +0100, Jiri Pirko wrote: > Mon, Mar 18, 2024 at 12:53:38PM CET, xuanz...@linux.alibaba.com wrote: > > On Mon, 18 Mar 2024 12:52:18 +0100, Jiri Pirko wrote: > > > Mon, Mar 18, 2024 at 12:05:53PM CET, xuanz...@linux.alibaba.com wrote: > > > > As the spec: > > > > > > > >

Re: [PATCH net-next v4 0/8] virtio-net: support device stats

2024-03-14 Thread Paolo Abeni
On Thu, 2024-03-14 at 16:54 +0800, Xuan Zhuo wrote: > As the spec: > > https://github.com/oasis-tcs/virtio-spec/commit/42f389989823039724f95bbbd243291ab0064f82 > > The virtio net supports to get device stats. > > Please review. > > Thanks. > > > v4: > 1. Support per-queue statistics API >

Re: [PATCH net-next 00/17] virtio-net: support AF_XDP zero copy (3/3)

2024-01-16 Thread Paolo Abeni
On Tue, 2024-01-16 at 17:42 +0800, Xuan Zhuo wrote: > This is the third part of virtio-net support AF_XDP zero copy. > > The whole patch set > http://lore.kernel.org/all/20231229073108.57778-1-xuanz...@linux.alibaba.com > > ## AF_XDP > > XDP socket(AF_XDP) is an excellent bypass kernel

Re: [PATCH net-next 0/5] virtio-net: make the virtio-net has independent directory

2024-01-16 Thread Paolo Abeni
On Tue, 2024-01-16 at 14:28 +0800, Xuan Zhuo wrote: > This is first part of virtio-net support AF_XDP zero copy. For future submissions, unless explcitly requested otherwise, please wait for a series being processed before posting the follow-ups. Otherwise any change requested to earlier patches c

Re: [PATCH 1/1] virtio_net: Add timeout handler to avoid kernel hang

2024-01-16 Thread Paolo Abeni
On Mon, 2024-01-15 at 09:29 +0800, Zhu Yanjun wrote: > From: Zhu Yanjun > > Some devices emulate the virtio_net hardwares. When virtio_net > driver sends commands to the emulated hardware, normally the > hardware needs time to response. Sometimes the time is very > long. Thus, the following will

Re: [PATCH net-next v6 4/5] virtio-net: add spin lock for ctrl cmd access

2023-12-06 Thread Paolo Abeni
On Tue, 2023-12-05 at 19:05 +0800, Heng Qi wrote: > > 在 2023/12/5 下午4:35, Jason Wang 写道: > > On Tue, Dec 5, 2023 at 4:02 PM Heng Qi wrote: > > > Currently access to ctrl cmd is globally protected via rtnl_lock and works > > > fine. But if dim work's access to ctrl cmd also holds rtnl_lock, deadlo

Re: [PATCH net-next v5 4/4] virtio-net: support rx netdim

2023-11-30 Thread Paolo Abeni
On Mon, 2023-11-27 at 10:55 +0800, Heng Qi wrote: > @@ -4738,11 +4881,14 @@ static void remove_vq_common(struct virtnet_info *vi) > static void virtnet_remove(struct virtio_device *vdev) > { > struct virtnet_info *vi = vdev->priv; > + int i; > > virtnet_cpu_notif_remove(vi); >

Re: [PATCH net] virtio_net: fix missing dma unmap for resize

2023-11-09 Thread Paolo Abeni
On Mon, 2023-11-06 at 16:18 +0800, Xuan Zhuo wrote: > For rq, we have three cases getting buffers from virtio core: > > 1. virtqueue_get_buf{,_ctx} > 2. virtqueue_detach_unused_buf > 3. callback for virtqueue_resize > > But in commit 295525e29a5b("virtio_net: merge dma operations when > filling m

Re: [PATCH net-next] veth: check for NAPI instead of xdp_prog before xmit of XDP frame

2021-04-16 Thread Paolo Abeni
if (!rcu_access_pointer(rq->napi)) > goto out; > > max_len = rcv->mtu + rcv->hard_header_len + VLAN_HLEN; Acked-by: Paolo Abeni Thanks for the quick turn-around!

Re: [PATCH net-next 2/4] veth: allow enabling NAPI even without XDP

2021-04-16 Thread Paolo Abeni
On Fri, 2021-04-16 at 17:29 +0200, Toke Høiland-Jørgensen wrote: > Paolo Abeni writes: > > > On Fri, 2021-04-09 at 16:58 +0200, Toke Høiland-Jørgensen wrote: > > > Paolo Abeni writes: > > > > > > > Currently the veth device has the GRO feature bit

[PATCH net-next] skbuff: revert "skbuff: remove some unnecessary operation in skb_segment_list()"

2021-04-14 Thread Paolo Abeni
and the tunnel decapsulation will call pskb_expand_head(). Fixes: 1ddc3229ad3c ("skbuff: remove some unnecessary operation in skb_segment_list()") Signed-off-by: Paolo Abeni --- net/core/skbuff.c | 15 --- 1 file changed, 12 insertions(+), 3 deletions(-) diff --

Re: Bug Report Napi GRO ixgbe

2021-04-12 Thread Paolo Abeni
Hello, On Sat, 2021-04-10 at 14:22 +0300, Martin Zaharinov wrote: > Hi Team > > One report latest kernel 5.11.12 > > Please check and help to find and fix Please provide a complete splat, including the trapping instruction. > > Apr 10 12:46:25 [214315.519319][ T3345] R13: 8cf193ddf700 R

[PATCH net v2] net: fix hangup on napi_disable for threaded napi

2021-04-09 Thread Paolo Abeni
ain napi_thread_poll() loop clear the SCHED bit Reported-by: Jakub Kicinski Fixes: 29863d41bb6e ("net: implement threaded-able napi poll loop support") Signed-off-by: Paolo Abeni --- net/core/dev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/core/dev.c b/net/cor

Re: [PATCH net-next 2/4] veth: allow enabling NAPI even without XDP

2021-04-09 Thread Paolo Abeni
On Fri, 2021-04-09 at 16:58 +0200, Toke Høiland-Jørgensen wrote: > Paolo Abeni writes: > > > Currently the veth device has the GRO feature bit set, even if > > no GRO aggregation is possible with the default configuration, > > as the veth device does not

Re: [PATCH net-next 3/4] veth: refine napi usage

2021-04-09 Thread Paolo Abeni
hello, On Fri, 2021-04-09 at 16:57 +0200, Toke Høiland-Jørgensen wrote: > Paolo Abeni writes: > > > After the previous patch, when enabling GRO, locally generated > > TCP traffic experiences some measurable overhead, as it traverses > > the GRO engine without a

[PATCH net-next 4/4] self-tests: add veth tests

2021-04-09 Thread Paolo Abeni
Add some basic veth tests, that verify the expected flags and aggregation with different setups (default, xdp, etc...) Signed-off-by: Paolo Abeni --- tools/testing/selftests/net/Makefile | 1 + tools/testing/selftests/net/veth.sh | 177 +++ 2 files changed, 178

[PATCH net-next 3/4] veth: refine napi usage

2021-04-09 Thread Paolo Abeni
is enabled on a veth peer. Only skbs that are eligible for aggregation enter the GRO layer, the others will go through the traditional receive path. Signed-off-by: Paolo Abeni --- drivers/net/veth.c | 23 ++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a

[PATCH net-next 1/4] veth: use skb_orphan_partial instead of skb_orphan

2021-04-09 Thread Paolo Abeni
id the problem fixed with commit 4bf9ffa0fb57 ("veth: Orphan skb before GRO") Signed-off-by: Paolo Abeni --- drivers/net/veth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/veth.c b/drivers/net/veth.c index 91b73db37555b..ad36e7ed16134 100644 --- a/driver

[PATCH net-next 2/4] veth: allow enabling NAPI even without XDP

2021-04-09 Thread Paolo Abeni
: Paolo Abeni --- drivers/net/veth.c | 129 - 1 file changed, 116 insertions(+), 13 deletions(-) diff --git a/drivers/net/veth.c b/drivers/net/veth.c index ad36e7ed16134..ca44e82d1edeb 100644 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c @@ -57,6

[PATCH net-next 0/4] veth: allow GRO even without XDP

2021-04-09 Thread Paolo Abeni
overhead for TCP traffic: some heuristic ensures that TCP will not go through the additional NAPI/GRO layer. Some self-tests are added to check the expected behavior in the default configuration, with XDP and with plain GRO enabled. Paolo Abeni (4): veth: use skb_orphan_partial instead of skb_o

Re: [PATCH net] net: fix hangup on napi_disable for threaded napi

2021-04-09 Thread Paolo Abeni
On Wed, 2021-04-07 at 11:13 -0700, Jakub Kicinski wrote: > On Wed, 07 Apr 2021 16:54:29 +0200 Paolo Abeni wrote: > > > > I think in the above example even the normal processing will be > > > > fooled?!? e.g. even without the napi_disable(), napi_thread_wait() will > &

Re: [PATCH net] net: fix hangup on napi_disable for threaded napi

2021-04-07 Thread Paolo Abeni
Hello, I'm sorry for the lag, On Thu, 2021-04-01 at 16:44 -0700, Jakub Kicinski wrote: > On Thu, 01 Apr 2021 11:55:45 +0200 Paolo Abeni wrote: > > On Wed, 2021-03-31 at 18:41 -0700, Jakub Kicinski wrote: > > > On Thu, 1 Apr 2021 00:46:18 +0200 Paolo Abeni wrote: >

[PATCH net 2/2] mptcp: revert "mptcp: provide subflow aware release function"

2021-04-01 Thread Paolo Abeni
This change reverts commit ad98dd37051e ("mptcp: provide subflow aware release function"). The latter introduced a deadlock spotted by syzkaller and is not needed anymore after the previous commit. Fixes: ad98dd37051e ("mptcp: provide subflow aware release function") Signed

[PATCH net 1/2] mptcp: forbit mcast-related sockopt on MPTCP sockets

2021-04-01 Thread Paolo Abeni
){+.+.}-{0:0}, at: mptcp6_release+0x57/0x130 net/mptcp/protocol.c:3507 which lock already depends on the new lock. Instead we can simply forbit any mcast-related setsockopt Fixes: 717e79c867ca5 ("mptcp: Add setsockopt()/getsockopt() socket operations") Signed-off-by: Paolo Abeni ---

[PATCH net 0/2] mptcp: mptcp: fix deadlock in mptcp{,6}_release

2021-04-01 Thread Paolo Abeni
implementation refactor Paolo Abeni (2): mptcp: forbit mcast-related sockopt on MPTCP sockets mptcp: revert "mptcp: provide subflow aware release function" net/mptcp/protocol.c | 100 --- 1 file changed, 47 insertions(+), 53 deletions(-) -- 2.26.2

Re: [PATCH net] net: fix hangup on napi_disable for threaded napi

2021-04-01 Thread Paolo Abeni
On Wed, 2021-03-31 at 18:41 -0700, Jakub Kicinski wrote: > On Thu, 1 Apr 2021 00:46:18 +0200 Paolo Abeni wrote: > > I hit an hangup on napi_disable(), when the threaded > > mode is enabled and the napi is under heavy traffic. > > > > If the relevant napi has been sch

[PATCH net] net: fix hangup on napi_disable for threaded napi

2021-03-31 Thread Paolo Abeni
loop support") Signed-off-by: Paolo Abeni --- net/core/dev.c | 8 1 file changed, 8 insertions(+) diff --git a/net/core/dev.c b/net/core/dev.c index b4c67a5be606d..e2e716ba027b8 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -7059,6 +7059,14 @@ static int napi_thread_wait(struct n

Re: [PATCH] udp: Add support for getsockopt(..., ..., UDP_GRO, ..., ...)

2021-03-31 Thread Paolo Abeni
On Wed, 2021-03-31 at 15:10 +0200, Norman Maurer wrote: > As this missing change was most likely an oversight in the original > commit I do think it should go into 5.12 and subsequently stable as > well. That’s also the reason why I didn’t send a v2 and changed the > commit message / subject for th

[PATCH net v2] net: let skb_orphan_partial wake-up waiters.

2021-03-30 Thread Paolo Abeni
ead of sort of open coding it (Eric) - provide an helper for the ownership change (Eric) Fixes: f6ba8d33cfbb ("netem: fix skb_orphan_partial()") Suggested-by: Eric Dumazet Signed-off-by: Paolo Abeni --- include/net/sock.h | 9 + net/core/sock.c| 12 +++- 2 file

Re: [PATCH net] net: let skb_orphan_partial wake-up waiters.

2021-03-30 Thread Paolo Abeni
On Tue, 2021-03-30 at 16:40 +0200, Eric Dumazet wrote: > On Tue, Mar 30, 2021 at 4:39 PM Eric Dumazet wrote: > > On Tue, Mar 30, 2021 at 4:25 PM Paolo Abeni wrote: > > > Currently the mentioned helper can end-up freeing the socket wmem > > > without waking-up any proce

[PATCH net] net: let skb_orphan_partial wake-up waiters.

2021-03-30 Thread Paolo Abeni
after releasing the memory, if the old skb destructor requires that. Fixes: f6ba8d33cfbb ("netem: fix skb_orphan_partial()") Signed-off-by: Paolo Abeni --- net/core/sock.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/core/sock.c b/net/core/sock.c index 0ed98f20448a2..7a3

[PATCH net-next v3 7/8] bareudp: allow UDP L4 GRO passthrou

2021-03-30 Thread Paolo Abeni
Similar to the previous commit, let even geneve passthrou the L4 GRO packets Signed-off-by: Paolo Abeni --- drivers/net/bareudp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/bareudp.c b/drivers/net/bareudp.c index 7511bca9c15ed..edfad93e7b686 100644 --- a/drivers/net

[PATCH net-next v3 8/8] selftests: net: add UDP GRO forwarding self-tests

2021-03-30 Thread Paolo Abeni
aggregation on top of UDP tunnel (vxlan) v1 -> v2: - hopefully clarify the commit message - moved the overlay network ipv6 range into the 'documentation' reserved range (Willem) Signed-off-by: Paolo Abeni --- tools/testing/selftests/net/Makefile | 1 + tools/testing/

[PATCH net-next v3 1/8] udp: fixup csum for GSO receive slow path

2021-03-30 Thread Paolo Abeni
ueue_rcv_skb(), as the UDP checksum has been validated by the GRO engine. v2 -> v3: - even more verbose commit message and comments v1 -> v2: - restrict the csum update to the packets strictly needing them - hopefully clarify the commit message and code comments Signed-off-by: Paolo Ab

[PATCH net-next v3 6/8] geneve: allow UDP L4 GRO passthrou

2021-03-30 Thread Paolo Abeni
Similar to the previous commit, let even geneve passthrou the L4 GRO packets Signed-off-by: Paolo Abeni --- drivers/net/geneve.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c index 4ac0373326efd..5d7a2b1469f4c 100644 --- a/drivers/net/geneve.c

[PATCH net-next v3 0/8] udp: GRO L4 improvements

2021-03-30 Thread Paolo Abeni
bitmask (Willem) - use only ipv6 addesses from test range in self-tests (Willem) - hopefully clarified most individual patches commit messages Paolo Abeni (8): udp: fixup csum for GSO receive slow path udp: skip L4 aggregation for UDP tunnel packets udp: properly complete L4 GRO over U

[PATCH net-next v3 4/8] udp: never accept GSO_FRAGLIST packets

2021-03-30 Thread Paolo Abeni
() accordingly. UDP sockets enabling UDP_GRO stil keep accept_udp_fraglist zeroed. v1 -> v2: - use 2 bits instead of a whole GSO bitmask (Willem) Fixes: 9fd1ff5d2ac7 ("udp: Support UDP fraglist GRO/GSO.") Signed-off-by: Paolo Abeni --- include/linux/udp.h | 16 +--- n

[PATCH net-next v3 3/8] udp: properly complete L4 GRO over UDP tunnel packet

2021-03-30 Thread Paolo Abeni
udp_gro_complete() so that we can enter the frag list path on the next round, for the inner header. v1 -> v2: - hopefully clarified the commit message Reviewed-by: Willem de Bruijn Signed-off-by: Paolo Abeni --- net/ipv4/udp_offload.c | 8 +++- net/ipv6/udp_offload.c | 3 ++- 2 fi

[PATCH net-next v3 2/8] udp: skip L4 aggregation for UDP tunnel packets

2021-03-30 Thread Paolo Abeni
SO.") Fixes: 36707061d6ba ("udp: allow forwarding of plain (non-fraglisted) UDP GRO packets") Reviewed-by: Willem de Bruijn Signed-off-by: Paolo Abeni --- net/ipv4/udp_offload.c | 19 +++ 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/net/ipv4/udp_offload.

[PATCH net-next v3 5/8] vxlan: allow L4 GRO passthrough

2021-03-30 Thread Paolo Abeni
. v1 -> v2: - updated to use the newly introduced UDP socket 'accept*' fields Signed-off-by: Paolo Abeni --- drivers/net/vxlan.c | 1 + include/linux/udp.h | 6 ++ 2 files changed, 7 insertions(+) diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index 7665817f3cb61..39ee130

Re: [PATCH net-next v2 1/8] udp: fixup csum for GSO receive slow path

2021-03-29 Thread Paolo Abeni
On Mon, 2021-03-29 at 11:24 -0400, Willem de Bruijn wrote: > On Mon, Mar 29, 2021 at 11:01 AM Paolo Abeni wrote: > > On Mon, 2021-03-29 at 09:52 -0400, Willem de Bruijn wrote: > > > > + if (skb->ip_summed == CHECKSUM_NONE && !skb->csum_valid) > >

Re: [PATCH net-next v2 1/8] udp: fixup csum for GSO receive slow path

2021-03-29 Thread Paolo Abeni
On Mon, 2021-03-29 at 09:52 -0400, Willem de Bruijn wrote: > > > That breaks the checksum-and-copy optimization when delivering to > > > local sockets. I wonder if that is a regression. > > > > The conversion to CHECKSUM_UNNECESSARY happens since > > commit 573e8fca255a27e3573b51f9b183d62641c47a3d

Re: [PATCH net-next v2 4/8] udp: never accept GSO_FRAGLIST packets

2021-03-29 Thread Paolo Abeni
On Mon, 2021-03-29 at 08:31 -0400, Willem de Bruijn wrote: > On Mon, Mar 29, 2021 at 4:14 AM Paolo Abeni wrote: > > On Fri, 2021-03-26 at 14:15 -0400, Willem de Bruijn wrote: > > > On Thu, Mar 25, 2021 at 1:24 PM Paolo Abeni wrote: > > > > Currently the UDP protocol

Re: [PATCH net-next v2 1/8] udp: fixup csum for GSO receive slow path

2021-03-29 Thread Paolo Abeni
On Mon, 2021-03-29 at 08:28 -0400, Willem de Bruijn wrote: > On Mon, Mar 29, 2021 at 7:26 AM Paolo Abeni wrote: > > On Fri, 2021-03-26 at 14:30 -0400, Willem de Bruijn wrote: > > > On Thu, Mar 25, 2021 at 1:24 PM Paolo Abeni wrote: > > > > When UDP packets gene

Re: [PATCH net-next v2 1/8] udp: fixup csum for GSO receive slow path

2021-03-29 Thread Paolo Abeni
On Fri, 2021-03-26 at 14:30 -0400, Willem de Bruijn wrote: > On Thu, Mar 25, 2021 at 1:24 PM Paolo Abeni wrote: > > When UDP packets generated locally by a socket with UDP_SEGMENT > > traverse the following path: > > > > UDP tunnel(xmit) -> veth (segmentation) -&

Re: [PATCH net-next v2 4/8] udp: never accept GSO_FRAGLIST packets

2021-03-29 Thread Paolo Abeni
On Fri, 2021-03-26 at 14:15 -0400, Willem de Bruijn wrote: > On Thu, Mar 25, 2021 at 1:24 PM Paolo Abeni wrote: > > Currently the UDP protocol delivers GSO_FRAGLIST packets to > > the sockets without the expected segmentation. > > > > This change addresses the issue

Re: [PATCH] udp: Add support for getsockopt(..., ..., UDP_GRO, ..., ...)

2021-03-26 Thread Paolo Abeni
On Fri, 2021-03-26 at 11:22 +0100, Norman Maurer wrote: > On 26. Mar 2021, at 10:36, Paolo Abeni wrote: > > One thing you can do to simplifies the maintainer's life, would be post > > a v2 with the correct tag (and ev. obsolete this patch in patchwork). > > I am quite

Re: [PATCH] udp: Add support for getsockopt(..., ..., UDP_GRO, ..., ...)

2021-03-26 Thread Paolo Abeni
Hello, On Thu, 2021-03-25 at 20:56 +0100, Norman Maurer wrote: > From: Norman Maurer > > Support for UDP_GRO was added in the past but the implementation for > getsockopt was missed which did lead to an error when we tried to > retrieve the setting for UDP_GRO. This patch adds the missing switch

[PATCH net-next v2 8/8] selftests: net: add UDP GRO forwarding self-tests

2021-03-25 Thread Paolo Abeni
aggregation on top of UDP tunnel (vxlan) v1 -> v2: - hopefully clarify the commit message - moved the overlay network ipv6 range into the 'documentation' reserved range (Willem) Signed-off-by: Paolo Abeni --- tools/testing/selftests/net/Makefile | 1 + tools/testing/

[PATCH net-next v2 6/8] geneve: allow UDP L4 GRO passthrou

2021-03-25 Thread Paolo Abeni
Similar to the previous commit, let even geneve passthrou the L4 GRO packets Signed-off-by: Paolo Abeni --- drivers/net/geneve.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c index 4ac0373326efd..5d7a2b1469f4c 100644 --- a/drivers/net/geneve.c

[PATCH net-next v2 7/8] bareudp: allow UDP L4 GRO passthrou

2021-03-25 Thread Paolo Abeni
Similar to the previous commit, let even geneve passthrou the L4 GRO packets Signed-off-by: Paolo Abeni --- drivers/net/bareudp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/bareudp.c b/drivers/net/bareudp.c index 7511bca9c15ed..edfad93e7b686 100644 --- a/drivers/net

[PATCH net-next v2 5/8] vxlan: allow L4 GRO passthrough

2021-03-25 Thread Paolo Abeni
. v1 -> v2: - updated to use the newly introduced UDP socket 'accept*' fields Signed-off-by: Paolo Abeni --- drivers/net/vxlan.c | 1 + include/linux/udp.h | 6 ++ 2 files changed, 7 insertions(+) diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index 7665817f3cb61..39ee130

[PATCH net-next v2 2/8] udp: skip L4 aggregation for UDP tunnel packets

2021-03-25 Thread Paolo Abeni
SO.") Fixes: 36707061d6ba ("udp: allow forwarding of plain (non-fraglisted) UDP GRO packets") Signed-off-by: Paolo Abeni --- net/ipv4/udp_offload.c | 19 +++ 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_off

[PATCH net-next v2 0/8] udp: GRO L4 improvements

2021-03-25 Thread Paolo Abeni
pefully clarified most individual patches commit messages Paolo Abeni (8): udp: fixup csum for GSO receive slow path udp: skip L4 aggregation for UDP tunnel packets udp: properly complete L4 GRO over UDP tunnel packet udp: never accept GSO_FRAGLIST packets vxlan: allow L4 GRO passt

[PATCH net-next v2 1/8] udp: fixup csum for GSO receive slow path

2021-03-25 Thread Paolo Abeni
tunnel code. Since the issue affects only this UDP receive slow path, let's set a suitable csum status there. v1 -> v2: - restrict the csum update to the packets strictly needing them - hopefully clarify the commit message and code comments Signed-off-by: Paolo Abeni --- in

[PATCH net-next v2 4/8] udp: never accept GSO_FRAGLIST packets

2021-03-25 Thread Paolo Abeni
() accordingly. UDP sockets enabling UDP_GRO stil keep accept_udp_fraglist zeroed. v1 -> v2: - use 2 bits instead of a whole GSO bitmask (Willem) Fixes: 9fd1ff5d2ac7 ("udp: Support UDP fraglist GRO/GSO.") Signed-off-by: Paolo Abeni --- include/linux/udp.h | 16 +--- n

[PATCH net-next v2 3/8] udp: properly complete L4 GRO over UDP tunnel packet

2021-03-25 Thread Paolo Abeni
udp_gro_complete() so that we can enter the frag list path on the next round, for the inner header. v1 -> v2: - hopefully clarified the commit message Signed-off-by: Paolo Abeni --- net/ipv4/udp_offload.c | 8 +++- net/ipv6/udp_offload.c | 3 ++- 2 files changed, 9 insertions(+), 2 deleti

Re: [PATCH net-next 1/8] udp: fixup csum for GSO receive slow path

2021-03-25 Thread Paolo Abeni
On Thu, 2021-03-25 at 09:53 -0400, Willem de Bruijn wrote: > On Thu, Mar 25, 2021 at 6:57 AM Paolo Abeni wrote: > > AFAICS, it depends ;) From skbuff.h: > > > > * skb->csum_level indicates the number of consecutive checksums found in > > * the packet minus

Re: [PATCH net-next 4/8] udp: never accept GSO_FRAGLIST packets

2021-03-25 Thread Paolo Abeni
On Wed, 2021-03-24 at 18:12 -0400, Willem de Bruijn wrote: > On Wed, Mar 24, 2021 at 3:00 PM Paolo Abeni wrote: > > On Tue, 2021-03-23 at 22:21 -0400, Willem de Bruijn wrote: > > > On Mon, Mar 22, 2021 at 1:12 PM Paolo Abeni wrote: > > > > On Mon, 2021-03-22 at

Re: [PATCH net-next 1/8] udp: fixup csum for GSO receive slow path

2021-03-25 Thread Paolo Abeni
Hello, On Wed, 2021-03-24 at 18:36 -0400, Willem de Bruijn wrote: > > > This is a UDP GSO packet egress packet that was further encapsulated > > > with a GSO_UDP_TUNNEL on egress, then looped to the ingress path? > > > > > > Then in the ingress path it has traversed the GRO layer. > > > > > > Is

Re: [PATCH net-next 4/8] udp: never accept GSO_FRAGLIST packets

2021-03-24 Thread Paolo Abeni
On Tue, 2021-03-23 at 22:21 -0400, Willem de Bruijn wrote: > On Mon, Mar 22, 2021 at 1:12 PM Paolo Abeni wrote: > > On Mon, 2021-03-22 at 09:42 -0400, Willem de Bruijn wrote: > > > On Sun, Mar 21, 2021 at 1:01 PM Paolo Abeni wrote: > > > > Currently the UDP protocol

!

2021-03-24 Thread Paolo Abeni
On Tue, 2021-03-23 at 21:54 -0400, Willem de Bruijn wrote: > > I did not look at that before your suggestion. Thanks for pointing out. > > > > I think the problem is specific to UDP: when processing the outer UDP > > header that is potentially eligible for both NETIF_F_GSO_UDP_L4 and > > gro_recei

Re: [PATCH net-next 1/8] udp: fixup csum for GSO receive slow path

2021-03-24 Thread Paolo Abeni
On Tue, 2021-03-23 at 21:45 -0400, Willem de Bruijn wrote: > On Mon, Mar 22, 2021 at 12:36 PM Paolo Abeni wrote: > > On Mon, 2021-03-22 at 09:18 -0400, Willem de Bruijn wrote: > > > On Sun, Mar 21, 2021 at 1:01 PM Paolo Abeni wrote: > > > > When looping back UDP GSO

Re: [PATCH net-next 8/8] selftests: net: add UDP GRO forwarding self-tests

2021-03-23 Thread Paolo Abeni
Hello, On Mon, 2021-03-22 at 09:44 -0400, Willem de Bruijn wrote: > > diff --git a/tools/testing/selftests/net/udpgro_fwd.sh > > b/tools/testing/selftests/net/udpgro_fwd.sh > > new file mode 100755 > > index 0..ac7ac56a27524 > > --- /dev/null > > +++ b/tools/testing/selftests/net/udpg

Re: [PATCH net-next 8/8] selftests: net: add UDP GRO forwarding self-tests

2021-03-22 Thread Paolo Abeni
On Mon, 2021-03-22 at 09:44 -0400, Willem de Bruijn wrote: > On Sun, Mar 21, 2021 at 1:02 PM Paolo Abeni wrote: > > create a bunch of virtual topology and verify that > > GRO_FRAG_LIST and GRO_FWD aggregate the ingress > > what are these constants? Aliases for SKB_GSO_FRAGLI

Re: [PATCH net-next 4/8] udp: never accept GSO_FRAGLIST packets

2021-03-22 Thread Paolo Abeni
On Mon, 2021-03-22 at 09:42 -0400, Willem de Bruijn wrote: > On Sun, Mar 21, 2021 at 1:01 PM Paolo Abeni wrote: > > Currently the UDP protocol delivers GSO_FRAGLIST packets to > > the sockets without the expected segmentation. > > > > This change addresses the issue

Re: [PATCH net-next 3/8] udp: properly complete L4 GRO over UDP tunnel packet

2021-03-22 Thread Paolo Abeni
On Mon, 2021-03-22 at 09:30 -0400, Willem de Bruijn wrote: > On Sun, Mar 21, 2021 at 1:01 PM Paolo Abeni wrote: > > After the previous patch the stack can do L4 UDP aggregation > > on top of an UDP tunnel. > > > > The current GRO complete code tries frag based aggregat

Re: [PATCH net-next 2/8] udp: skip fwd/list GRO for tunnel packets

2021-03-22 Thread Paolo Abeni
On Mon, 2021-03-22 at 09:24 -0400, Willem de Bruijn wrote: > On Sun, Mar 21, 2021 at 1:01 PM Paolo Abeni wrote: > > If UDP GRO forwarding (or list) is enabled, > > Please explicitly mention the gso type SKB_GSO_FRAGLIST. I, at least, > didn't immediately grasp that gro for

Re: [PATCH net-next 1/8] udp: fixup csum for GSO receive slow path

2021-03-22 Thread Paolo Abeni
On Mon, 2021-03-22 at 09:18 -0400, Willem de Bruijn wrote: > On Sun, Mar 21, 2021 at 1:01 PM Paolo Abeni wrote: > > When looping back UDP GSO over UDP tunnel packets to an UDP socket, > > the individual packet csum is currently set to CSUM_NONE. That causes > > unexpected/

[PATCH net-next 7/8] bareudp: allow UDP L4 GRO passthrou

2021-03-21 Thread Paolo Abeni
Similar to the previous commit, let even geneve passthrou the L4 GRO packets Signed-off-by: Paolo Abeni --- drivers/net/bareudp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/bareudp.c b/drivers/net/bareudp.c index 7511bca9c15ed..edfad93e7b686 100644 --- a/drivers/net

[PATCH net-next 8/8] selftests: net: add UDP GRO forwarding self-tests

2021-03-21 Thread Paolo Abeni
create a bunch of virtual topology and verify that GRO_FRAG_LIST and GRO_FWD aggregate the ingress packets as expected, and the aggregate packets are segmented correctly when landing on a socket Also test L4 aggregation on top of UDP tunnel (vxlan) Signed-off-by: Paolo Abeni --- tools/testing

[PATCH net-next 6/8] geneve: allow UDP L4 GRO passthrou

2021-03-21 Thread Paolo Abeni
Similar to the previous commit, let even geneve passthrou the L4 GRO packets Signed-off-by: Paolo Abeni --- drivers/net/geneve.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c index 4ac0373326efd..5d7a2b1469f4c 100644 --- a/drivers/net/geneve.c

[PATCH net-next 0/8] udp: GRO L4 improvements

2021-03-21 Thread Paolo Abeni
-next, as overall it makes available a new feature. Paolo Abeni (8): udp: fixup csum for GSO receive slow path udp: skip fwd/list GRO for tunnel packets udp: properly complete L4 GRO over UDP tunnel packet udp: never accept GSO_FRAGLIST packets vxlan: allow L4 GRO passthrou geneve: allow

[PATCH net-next 3/8] udp: properly complete L4 GRO over UDP tunnel packet

2021-03-21 Thread Paolo Abeni
use time GRO 'encap_mark' field to track the need GRO complete action. If encap_mark is set, skip the frag_list aggregation. On tunnel encap GRO complete clear such field, so that an inner frag_list GRO complete could take action. Signed-off-by: Paolo Abeni --- net/ipv4/udp_off

[PATCH net-next 5/8] vxlan: allow L4 GRO passthrou

2021-03-21 Thread Paolo Abeni
. Signed-off-by: Paolo Abeni --- drivers/net/vxlan.c | 1 + include/linux/udp.h | 5 + 2 files changed, 6 insertions(+) diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index 7665817f3cb61..39ee1300cdd9d 100644 --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c @@ -3484,6 +3484,7

[PATCH net-next 4/8] udp: never accept GSO_FRAGLIST packets

2021-03-21 Thread Paolo Abeni
packets are never accepted Note: this also updates the 'unused' field size to really fit the otherwise existing hole. It's size become incorrect after commit bec1f6f69736 ("udp: generate gso with UDP_SEGMENT"). Fixes: 9fd1ff5d2ac7 ("udp: Support UDP fraglist GRO/GSO

[PATCH net-next 1/8] udp: fixup csum for GSO receive slow path

2021-03-21 Thread Paolo Abeni
the UDP tunnel code. Since the issue affects only this UDP receive slow path, let's set a suitable csum status there. Signed-off-by: Paolo Abeni --- include/net/udp.h | 18 ++ net/ipv4/udp.c| 10 ++ net/ipv6/udp.c| 5 + 3 files changed, 33 insertions(+)

[PATCH net-next 2/8] udp: skip fwd/list GRO for tunnel packets

2021-03-21 Thread Paolo Abeni
ot;) Fixes: 36707061d6ba ("udp: allow forwarding of plain (non-fraglisted) UDP GRO packets") Signed-off-by: Paolo Abeni --- net/ipv4/udp_offload.c | 19 +++ 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c

Re: [PATCH net-next 2/4] gro: add combined call_gro_receive() + INDIRECT_CALL_INET() helper

2021-03-19 Thread Paolo Abeni
On Fri, 2021-03-19 at 11:43 +, Alexander Lobakin wrote: > I'm not sure if you did it on purpose in commit aaa5d90b395a7 > ("net: use indirect call wrappers at GRO network layer"). > Was that intentional I must admit that 2y+ later my own intentions are not so clear to me too;) > for the sake

Re: [PATCH net-next 2/4] gro: add combined call_gro_receive() + INDIRECT_CALL_INET() helper

2021-03-19 Thread Paolo Abeni
Hello, On Thu, 2021-03-18 at 18:42 +, Alexander Lobakin wrote: > call_gro_receive() is used to limit GRO recursion, but it works only > with callback pointers. > There's a combined version of call_gro_receive() + INDIRECT_CALL_2() > in , but it doesn't check for IPv6 modularity. AFAICS, ip6_o

Re: possible deadlock in ipv6_sock_mc_close

2021-03-01 Thread Paolo Abeni
Hello, On Mon, 2021-03-01 at 14:52 +, Chuck Lever wrote: > > On Mar 1, 2021, at 8:49 AM, syzbot > > wrote: > > > > Hello, > > > > syzbot found the following issue on: > > > > HEAD commit:eee7ede6 Merge branch 'bnxt_en-error-recovery-bug-fixes' > > git tree: net > > console outpu

[PATCH iproute2-next] mptcp: add support for port based endpoint

2021-02-19 Thread Paolo Abeni
The feature is supported by the kernel since 5.11-net-next, let's allow user-space to use it. Just parse and dump an additional, per endpoint, u16 attribute Signed-off-by: Paolo Abeni --- ip/ipmptcp.c| 16 ++-- man/man8/ip-mptcp.8 | 8 2 files change

[PATCH net 1/4] mptcp: fix DATA_FIN processing for orphaned sockets

2021-02-19 Thread Paolo Abeni
mptcp: refactor shutdown and close") Reviewed-by: Mat Martineau Signed-off-by: Paolo Abeni --- net/mptcp/protocol.c | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 06da6ad31c87..78bd4bed07ac 100644 --- a

  1   2   3   4   5   6   7   8   9   10   >