diff options
Diffstat (limited to 'target/linux/generic/backport-5.15')
10 files changed, 208 insertions, 158 deletions
diff --git a/target/linux/generic/backport-5.15/600-v5.18-page_pool-Add-allocation-stats.patch b/target/linux/generic/backport-5.15/600-v5.18-page_pool-Add-allocation-stats.patch index 7b97181403..3dbfb7ccba 100644 --- a/target/linux/generic/backport-5.15/600-v5.18-page_pool-Add-allocation-stats.patch +++ b/target/linux/generic/backport-5.15/600-v5.18-page_pool-Add-allocation-stats.patch @@ -1,30 +1,36 @@ -commit 8610037e8106b48c79cfe0afb92b2b2466e51c3d -Author: Joe Damato <jdamato@fastly.com> -Date: Tue Mar 1 23:55:47 2022 -0800 +From 8610037e8106b48c79cfe0afb92b2b2466e51c3d Mon Sep 17 00:00:00 2001 +From: Joe Damato <jdamato@fastly.com> +Date: Tue, 1 Mar 2022 23:55:47 -0800 +Subject: [PATCH] page_pool: Add allocation stats - page_pool: Add allocation stats - - Add per-pool statistics counters for the allocation path of a page pool. - These stats are incremented in softirq context, so no locking or per-cpu - variables are needed. - - This code is disabled by default and a kernel config option is provided for - users who wish to enable them. - - The statistics added are: - - fast: successful fast path allocations - - slow: slow path order-0 allocations - - slow_high_order: slow path high order allocations - - empty: ptr ring is empty, so a slow path allocation was forced. - - refill: an allocation which triggered a refill of the cache - - waive: pages obtained from the ptr ring that cannot be added to - the cache due to a NUMA mismatch. - - Signed-off-by: Joe Damato <jdamato@fastly.com> - Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> - Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> - Signed-off-by: David S. Miller <davem@davemloft.net> +Add per-pool statistics counters for the allocation path of a page pool. +These stats are incremented in softirq context, so no locking or per-cpu +variables are needed. +This code is disabled by default and a kernel config option is provided for +users who wish to enable them. + +The statistics added are: + - fast: successful fast path allocations + - slow: slow path order-0 allocations + - slow_high_order: slow path high order allocations + - empty: ptr ring is empty, so a slow path allocation was forced. + - refill: an allocation which triggered a refill of the cache + - waive: pages obtained from the ptr ring that cannot be added to + the cache due to a NUMA mismatch. + +Signed-off-by: Joe Damato <jdamato@fastly.com> +Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> +Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> +Signed-off-by: David S. Miller <davem@davemloft.net> +--- + include/net/page_pool.h | 18 ++++++++++++++++++ + net/Kconfig | 13 +++++++++++++ + net/core/page_pool.c | 24 ++++++++++++++++++++---- + 3 files changed, 51 insertions(+), 4 deletions(-) + +diff --git a/include/net/page_pool.h b/include/net/page_pool.h +index 97c3c19872ff..1f27e8a48830 100644 --- a/include/net/page_pool.h +++ b/include/net/page_pool.h @@ -82,6 +82,19 @@ struct page_pool_params { diff --git a/target/linux/generic/backport-5.15/601-v5.18-page_pool-Add-recycle-stats.patch b/target/linux/generic/backport-5.15/601-v5.18-page_pool-Add-recycle-stats.patch index 8330ae811d..e60979f4a7 100644 --- a/target/linux/generic/backport-5.15/601-v5.18-page_pool-Add-recycle-stats.patch +++ b/target/linux/generic/backport-5.15/601-v5.18-page_pool-Add-recycle-stats.patch @@ -1,21 +1,26 @@ -commit ad6fa1e1ab1b8164f1ba296b1b4dc556a483bcad -Author: Joe Damato <jdamato@fastly.com> -Date: Tue Mar 1 23:55:48 2022 -0800 +From ad6fa1e1ab1b8164f1ba296b1b4dc556a483bcad Mon Sep 17 00:00:00 2001 +From: Joe Damato <jdamato@fastly.com> +Date: Tue, 1 Mar 2022 23:55:48 -0800 +Subject: [PATCH 2/3] page_pool: Add recycle stats - page_pool: Add recycle stats - - Add per-cpu stats tracking page pool recycling events: - - cached: recycling placed page in the page pool cache - - cache_full: page pool cache was full - - ring: page placed into the ptr ring - - ring_full: page released from page pool because the ptr ring was full - - released_refcnt: page released (and not recycled) because refcnt > 1 - - Signed-off-by: Joe Damato <jdamato@fastly.com> - Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> - Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> - Signed-off-by: David S. Miller <davem@davemloft.net> +Add per-cpu stats tracking page pool recycling events: + - cached: recycling placed page in the page pool cache + - cache_full: page pool cache was full + - ring: page placed into the ptr ring + - ring_full: page released from page pool because the ptr ring was full + - released_refcnt: page released (and not recycled) because refcnt > 1 +Signed-off-by: Joe Damato <jdamato@fastly.com> +Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> +Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> +Signed-off-by: David S. Miller <davem@davemloft.net> +--- + include/net/page_pool.h | 16 ++++++++++++++++ + net/core/page_pool.c | 30 ++++++++++++++++++++++++++++-- + 2 files changed, 44 insertions(+), 2 deletions(-) + +diff --git a/include/net/page_pool.h b/include/net/page_pool.h +index 1f27e8a48830..298af95bbf96 100644 --- a/include/net/page_pool.h +++ b/include/net/page_pool.h @@ -93,6 +93,18 @@ struct page_pool_alloc_stats { diff --git a/target/linux/generic/backport-5.15/602-v5.18-page_pool-Add-function-to-batch-and-return-stats.patch b/target/linux/generic/backport-5.15/602-v5.18-page_pool-Add-function-to-batch-and-return-stats.patch index 8afbd5d120..e5fbfd14f0 100644 --- a/target/linux/generic/backport-5.15/602-v5.18-page_pool-Add-function-to-batch-and-return-stats.patch +++ b/target/linux/generic/backport-5.15/602-v5.18-page_pool-Add-function-to-batch-and-return-stats.patch @@ -1,17 +1,22 @@ -commit 6b95e3388b1ea0ca63500c5a6e39162dbf828433 -Author: Joe Damato <jdamato@fastly.com> -Date: Tue Mar 1 23:55:49 2022 -0800 +From 6b95e3388b1ea0ca63500c5a6e39162dbf828433 Mon Sep 17 00:00:00 2001 +From: Joe Damato <jdamato@fastly.com> +Date: Tue, 1 Mar 2022 23:55:49 -0800 +Subject: [PATCH 3/3] page_pool: Add function to batch and return stats - page_pool: Add function to batch and return stats - - Adds a function page_pool_get_stats which can be used by drivers to obtain - stats for a specified page_pool. - - Signed-off-by: Joe Damato <jdamato@fastly.com> - Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> - Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> - Signed-off-by: David S. Miller <davem@davemloft.net> +Adds a function page_pool_get_stats which can be used by drivers to obtain +stats for a specified page_pool. +Signed-off-by: Joe Damato <jdamato@fastly.com> +Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> +Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> +Signed-off-by: David S. Miller <davem@davemloft.net> +--- + include/net/page_pool.h | 17 +++++++++++++++++ + net/core/page_pool.c | 25 +++++++++++++++++++++++++ + 2 files changed, 42 insertions(+) + +diff --git a/include/net/page_pool.h b/include/net/page_pool.h +index 298af95bbf96..ea5fb70e5101 100644 --- a/include/net/page_pool.h +++ b/include/net/page_pool.h @@ -105,6 +105,23 @@ struct page_pool_recycle_stats { diff --git a/target/linux/generic/backport-5.15/603-v5.19-page_pool-Add-recycle-stats-to-page_pool_put_page_bu.patch b/target/linux/generic/backport-5.15/603-v5.19-page_pool-Add-recycle-stats-to-page_pool_put_page_bu.patch index 90f307772a..e12c387bbc 100644 --- a/target/linux/generic/backport-5.15/603-v5.19-page_pool-Add-recycle-stats-to-page_pool_put_page_bu.patch +++ b/target/linux/generic/backport-5.15/603-v5.19-page_pool-Add-recycle-stats-to-page_pool_put_page_bu.patch @@ -1,17 +1,21 @@ -commit 590032a4d2133ecc10d3078a8db1d85a4842f12c -Author: Lorenzo Bianconi <lorenzo@kernel.org> -Date: Mon Apr 11 16:05:26 2022 +0200 +From 590032a4d2133ecc10d3078a8db1d85a4842f12c Mon Sep 17 00:00:00 2001 +From: Lorenzo Bianconi <lorenzo@kernel.org> +Date: Mon, 11 Apr 2022 16:05:26 +0200 +Subject: [PATCH] page_pool: Add recycle stats to page_pool_put_page_bulk - page_pool: Add recycle stats to page_pool_put_page_bulk - - Add missing recycle stats to page_pool_put_page_bulk routine. - - Reviewed-by: Joe Damato <jdamato@fastly.com> - Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> - Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> - Link: https://lore.kernel.org/r/3712178b51c007cfaed910ea80e68f00c916b1fa.1649685634.git.lorenzo@kernel.org - Signed-off-by: Paolo Abeni <pabeni@redhat.com> +Add missing recycle stats to page_pool_put_page_bulk routine. +Reviewed-by: Joe Damato <jdamato@fastly.com> +Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> +Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> +Link: https://lore.kernel.org/r/3712178b51c007cfaed910ea80e68f00c916b1fa.1649685634.git.lorenzo@kernel.org +Signed-off-by: Paolo Abeni <pabeni@redhat.com> +--- + net/core/page_pool.c | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +diff --git a/net/core/page_pool.c b/net/core/page_pool.c +index 1943c0f0307d..4af55d28ffa3 100644 --- a/net/core/page_pool.c +++ b/net/core/page_pool.c @@ -36,6 +36,12 @@ diff --git a/target/linux/generic/backport-5.15/604-v5.19-net-page_pool-introduce-ethtool-stats.patch b/target/linux/generic/backport-5.15/604-v5.19-net-page_pool-introduce-ethtool-stats.patch index 0694c5cfcb..fa3f1c8fb8 100644 --- a/target/linux/generic/backport-5.15/604-v5.19-net-page_pool-introduce-ethtool-stats.patch +++ b/target/linux/generic/backport-5.15/604-v5.19-net-page_pool-introduce-ethtool-stats.patch @@ -1,17 +1,22 @@ -commit f3c5264f452a5b0ac1de1f2f657efbabdea3c76a -Author: Lorenzo Bianconi <lorenzo@kernel.org> -Date: Tue Apr 12 18:31:58 2022 +0200 +From f3c5264f452a5b0ac1de1f2f657efbabdea3c76a Mon Sep 17 00:00:00 2001 +From: Lorenzo Bianconi <lorenzo@kernel.org> +Date: Tue, 12 Apr 2022 18:31:58 +0200 +Subject: [PATCH] net: page_pool: introduce ethtool stats - net: page_pool: introduce ethtool stats - - Introduce page_pool APIs to report stats through ethtool and reduce - duplicated code in each driver. - - Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> - Reviewed-by: Jakub Kicinski <kuba@kernel.org> - Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> - Signed-off-by: David S. Miller <davem@davemloft.net> +Introduce page_pool APIs to report stats through ethtool and reduce +duplicated code in each driver. +Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> +Reviewed-by: Jakub Kicinski <kuba@kernel.org> +Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> +Signed-off-by: David S. Miller <davem@davemloft.net> +--- + include/net/page_pool.h | 21 ++++++++++++++ + net/core/page_pool.c | 63 ++++++++++++++++++++++++++++++++++++++++- + 2 files changed, 83 insertions(+), 1 deletion(-) + +diff --git a/include/net/page_pool.h b/include/net/page_pool.h +index ea5fb70e5101..813c93499f20 100644 --- a/include/net/page_pool.h +++ b/include/net/page_pool.h @@ -115,6 +115,10 @@ struct page_pool_stats { diff --git a/target/linux/generic/backport-5.15/605-v5.18-xdp-introduce-flags-field-in-xdp_buff-xdp_frame.patch b/target/linux/generic/backport-5.15/605-v5.18-xdp-introduce-flags-field-in-xdp_buff-xdp_frame.patch index 9c5a14c41b..529b504ed8 100644 --- a/target/linux/generic/backport-5.15/605-v5.18-xdp-introduce-flags-field-in-xdp_buff-xdp_frame.patch +++ b/target/linux/generic/backport-5.15/605-v5.18-xdp-introduce-flags-field-in-xdp_buff-xdp_frame.patch @@ -1,25 +1,29 @@ -commit 2e88d4ff03013937028f5397268b21e10cf68713 -Author: Lorenzo Bianconi <lorenzo@kernel.org> -Date: Fri Jan 21 11:09:45 2022 +0100 +From 2e88d4ff03013937028f5397268b21e10cf68713 Mon Sep 17 00:00:00 2001 +From: Lorenzo Bianconi <lorenzo@kernel.org> +Date: Fri, 21 Jan 2022 11:09:45 +0100 +Subject: [PATCH] xdp: introduce flags field in xdp_buff/xdp_frame - xdp: introduce flags field in xdp_buff/xdp_frame - - Introduce flags field in xdp_frame and xdp_buffer data structures - to define additional buffer features. At the moment the only - supported buffer feature is frags bit (XDP_FLAGS_HAS_FRAGS). - frags bit is used to specify if this is a linear buffer - (XDP_FLAGS_HAS_FRAGS not set) or a frags frame (XDP_FLAGS_HAS_FRAGS - set). In the latter case the driver is expected to initialize the - skb_shared_info structure at the end of the first buffer to link together - subsequent buffers belonging to the same frame. - - Acked-by: Toke Hoiland-Jorgensen <toke@redhat.com> - Acked-by: John Fastabend <john.fastabend@gmail.com> - Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> - Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> - Link: https://lore.kernel.org/r/e389f14f3a162c0a5bc6a2e1aa8dd01a90be117d.1642758637.git.lorenzo@kernel.org - Signed-off-by: Alexei Starovoitov <ast@kernel.org> +Introduce flags field in xdp_frame and xdp_buffer data structures +to define additional buffer features. At the moment the only +supported buffer feature is frags bit (XDP_FLAGS_HAS_FRAGS). +frags bit is used to specify if this is a linear buffer +(XDP_FLAGS_HAS_FRAGS not set) or a frags frame (XDP_FLAGS_HAS_FRAGS +set). In the latter case the driver is expected to initialize the +skb_shared_info structure at the end of the first buffer to link together +subsequent buffers belonging to the same frame. +Acked-by: Toke Hoiland-Jorgensen <toke@redhat.com> +Acked-by: John Fastabend <john.fastabend@gmail.com> +Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> +Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> +Link: https://lore.kernel.org/r/e389f14f3a162c0a5bc6a2e1aa8dd01a90be117d.1642758637.git.lorenzo@kernel.org +Signed-off-by: Alexei Starovoitov <ast@kernel.org> +--- + include/net/xdp.h | 29 +++++++++++++++++++++++++++++ + 1 file changed, 29 insertions(+) + +diff --git a/include/net/xdp.h b/include/net/xdp.h +index 8f0812e4996d..485e9495a690 100644 --- a/include/net/xdp.h +++ b/include/net/xdp.h @@ -66,6 +66,10 @@ struct xdp_txq_info { diff --git a/target/linux/generic/backport-5.15/606-v5.18-xdp-add-frags-support-to-xdp_return_-buff-frame.patch b/target/linux/generic/backport-5.15/606-v5.18-xdp-add-frags-support-to-xdp_return_-buff-frame.patch index 5a04948002..a852c4d5b0 100644 --- a/target/linux/generic/backport-5.15/606-v5.18-xdp-add-frags-support-to-xdp_return_-buff-frame.patch +++ b/target/linux/generic/backport-5.15/606-v5.18-xdp-add-frags-support-to-xdp_return_-buff-frame.patch @@ -1,19 +1,24 @@ -commit 7c48cb0176c6d6d3b55029f7ff4ffa05faee6446 -Author: Lorenzo Bianconi <lorenzo@kernel.org> -Date: Fri Jan 21 11:09:50 2022 +0100 +From 7c48cb0176c6d6d3b55029f7ff4ffa05faee6446 Mon Sep 17 00:00:00 2001 +From: Lorenzo Bianconi <lorenzo@kernel.org> +Date: Fri, 21 Jan 2022 11:09:50 +0100 +Subject: [PATCH] xdp: add frags support to xdp_return_{buff/frame} - xdp: add frags support to xdp_return_{buff/frame} - - Take into account if the received xdp_buff/xdp_frame is non-linear - recycling/returning the frame memory to the allocator or into - xdp_frame_bulk. - - Acked-by: Toke Hoiland-Jorgensen <toke@redhat.com> - Acked-by: John Fastabend <john.fastabend@gmail.com> - Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> - Link: https://lore.kernel.org/r/a961069febc868508ce1bdf5e53a343eb4e57cb2.1642758637.git.lorenzo@kernel.org - Signed-off-by: Alexei Starovoitov <ast@kernel.org> +Take into account if the received xdp_buff/xdp_frame is non-linear +recycling/returning the frame memory to the allocator or into +xdp_frame_bulk. +Acked-by: Toke Hoiland-Jorgensen <toke@redhat.com> +Acked-by: John Fastabend <john.fastabend@gmail.com> +Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> +Link: https://lore.kernel.org/r/a961069febc868508ce1bdf5e53a343eb4e57cb2.1642758637.git.lorenzo@kernel.org +Signed-off-by: Alexei Starovoitov <ast@kernel.org> +--- + include/net/xdp.h | 18 ++++++++++++++-- + net/core/xdp.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++- + 2 files changed, 69 insertions(+), 3 deletions(-) + +diff --git a/include/net/xdp.h b/include/net/xdp.h +index 1f8641ec658e..8463dea8b4db 100644 --- a/include/net/xdp.h +++ b/include/net/xdp.h @@ -275,10 +275,24 @@ void __xdp_release_frame(void *data, str diff --git a/target/linux/generic/backport-5.15/607-v5.18-net-skbuff-add-size-metadata-to-skb_shared_info-for-.patch b/target/linux/generic/backport-5.15/607-v5.18-net-skbuff-add-size-metadata-to-skb_shared_info-for-.patch index 5ded882f90..ea020d4e9f 100644 --- a/target/linux/generic/backport-5.15/607-v5.18-net-skbuff-add-size-metadata-to-skb_shared_info-for-.patch +++ b/target/linux/generic/backport-5.15/607-v5.18-net-skbuff-add-size-metadata-to-skb_shared_info-for-.patch @@ -1,22 +1,26 @@ -commit d16697cb6261d4cc23422e6b1cb2759df8aa76d0 -Author: Lorenzo Bianconi <lorenzo@kernel.org> -Date: Fri Jan 21 11:09:44 2022 +0100 +From d16697cb6261d4cc23422e6b1cb2759df8aa76d0 Mon Sep 17 00:00:00 2001 +From: Lorenzo Bianconi <lorenzo@kernel.org> +Date: Fri, 21 Jan 2022 11:09:44 +0100 +Subject: [PATCH] net: skbuff: add size metadata to skb_shared_info for xdp - net: skbuff: add size metadata to skb_shared_info for xdp - - Introduce xdp_frags_size field in skb_shared_info data structure - to store xdp_buff/xdp_frame frame paged size (xdp_frags_size will - be used in xdp frags support). In order to not increase - skb_shared_info size we will use a hole due to skb_shared_info - alignment. - - Acked-by: Toke Hoiland-Jorgensen <toke@redhat.com> - Acked-by: John Fastabend <john.fastabend@gmail.com> - Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> - Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> - Link: https://lore.kernel.org/r/8a849819a3e0a143d540f78a3a5add76e17e980d.1642758637.git.lorenzo@kernel.org - Signed-off-by: Alexei Starovoitov <ast@kernel.org> +Introduce xdp_frags_size field in skb_shared_info data structure +to store xdp_buff/xdp_frame frame paged size (xdp_frags_size will +be used in xdp frags support). In order to not increase +skb_shared_info size we will use a hole due to skb_shared_info +alignment. +Acked-by: Toke Hoiland-Jorgensen <toke@redhat.com> +Acked-by: John Fastabend <john.fastabend@gmail.com> +Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> +Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> +Link: https://lore.kernel.org/r/8a849819a3e0a143d540f78a3a5add76e17e980d.1642758637.git.lorenzo@kernel.org +Signed-off-by: Alexei Starovoitov <ast@kernel.org> +--- + include/linux/skbuff.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h +index bf11e1fbd69b..8131d0de7559 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -567,6 +567,7 @@ struct skb_shared_info { diff --git a/target/linux/generic/backport-5.15/608-v5.18-net-veth-Account-total-xdp_frame-len-running-ndo_xdp.patch b/target/linux/generic/backport-5.15/608-v5.18-net-veth-Account-total-xdp_frame-len-running-ndo_xdp.patch index 9b16fc00b7..5ca38d2403 100644 --- a/target/linux/generic/backport-5.15/608-v5.18-net-veth-Account-total-xdp_frame-len-running-ndo_xdp.patch +++ b/target/linux/generic/backport-5.15/608-v5.18-net-veth-Account-total-xdp_frame-len-running-ndo_xdp.patch @@ -1,22 +1,27 @@ -commit 5142239a22219921a7863cf00c9ab853c00689d8 -Author: Lorenzo Bianconi <lorenzo@kernel.org> -Date: Fri Mar 11 10:14:18 2022 +0100 +From 5142239a22219921a7863cf00c9ab853c00689d8 Mon Sep 17 00:00:00 2001 +From: Lorenzo Bianconi <lorenzo@kernel.org> +Date: Fri, 11 Mar 2022 10:14:18 +0100 +Subject: [PATCH] net: veth: Account total xdp_frame len running ndo_xdp_xmit - net: veth: Account total xdp_frame len running ndo_xdp_xmit - - Even if this is a theoretical issue since it is not possible to perform - XDP_REDIRECT on a non-linear xdp_frame, veth driver does not account - paged area in ndo_xdp_xmit function pointer. - Introduce xdp_get_frame_len utility routine to get the xdp_frame full - length and account total frame size running XDP_REDIRECT of a - non-linear xdp frame into a veth device. - - Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> - Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> - Acked-by: Toke Hoiland-Jorgensen <toke@redhat.com> - Acked-by: John Fastabend <john.fastabend@gmail.com> - Link: https://lore.kernel.org/bpf/54f9fd3bb65d190daf2c0bbae2f852ff16cfbaa0.1646989407.git.lorenzo@kernel.org +Even if this is a theoretical issue since it is not possible to perform +XDP_REDIRECT on a non-linear xdp_frame, veth driver does not account +paged area in ndo_xdp_xmit function pointer. +Introduce xdp_get_frame_len utility routine to get the xdp_frame full +length and account total frame size running XDP_REDIRECT of a +non-linear xdp frame into a veth device. +Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> +Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> +Acked-by: Toke Hoiland-Jorgensen <toke@redhat.com> +Acked-by: John Fastabend <john.fastabend@gmail.com> +Link: https://lore.kernel.org/bpf/54f9fd3bb65d190daf2c0bbae2f852ff16cfbaa0.1646989407.git.lorenzo@kernel.org +--- + drivers/net/veth.c | 4 ++-- + include/net/xdp.h | 14 ++++++++++++++ + 2 files changed, 16 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/veth.c b/drivers/net/veth.c +index 58b20ea171dd..b77ce3fdcfe8 100644 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c @@ -501,7 +501,7 @@ static int veth_xdp_xmit(struct net_devi diff --git a/target/linux/generic/backport-5.15/609-v5.18-veth-Allow-jumbo-frames-in-xdp-mode.patch b/target/linux/generic/backport-5.15/609-v5.18-veth-Allow-jumbo-frames-in-xdp-mode.patch index 8080d621da..c8627e0f71 100644 --- a/target/linux/generic/backport-5.15/609-v5.18-veth-Allow-jumbo-frames-in-xdp-mode.patch +++ b/target/linux/generic/backport-5.15/609-v5.18-veth-Allow-jumbo-frames-in-xdp-mode.patch @@ -1,18 +1,25 @@ -commit 7cda76d858a4e71ac4a04066c093679a12e1312c -Author: Lorenzo Bianconi <lorenzo@kernel.org> -Date: Fri Mar 11 10:14:20 2022 +0100 +From 7cda76d858a4e71ac4a04066c093679a12e1312c Mon Sep 17 00:00:00 2001 +From: Lorenzo Bianconi <lorenzo@kernel.org> +Date: Fri, 11 Mar 2022 10:14:20 +0100 +Subject: [PATCH] veth: Allow jumbo frames in xdp mode +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit - veth: Allow jumbo frames in xdp mode - - Allow increasing the MTU over page boundaries on veth devices - if the attached xdp program declares to support xdp fragments. - - Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> - Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> - Acked-by: Toke Høiland-Jørgensen <toke@redhat.com> - Acked-by: John Fastabend <john.fastabend@gmail.com> - Link: https://lore.kernel.org/bpf/d5dc039c3d4123426e7023a488c449181a7bc57f.1646989407.git.lorenzo@kernel.org +Allow increasing the MTU over page boundaries on veth devices +if the attached xdp program declares to support xdp fragments. +Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> +Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> +Acked-by: Toke Høiland-Jørgensen <toke@redhat.com> +Acked-by: John Fastabend <john.fastabend@gmail.com> +Link: https://lore.kernel.org/bpf/d5dc039c3d4123426e7023a488c449181a7bc57f.1646989407.git.lorenzo@kernel.org +--- + drivers/net/veth.c | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/drivers/net/veth.c b/drivers/net/veth.c +index bfae15ec902b..1b5714926d81 100644 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c @@ -1470,9 +1470,14 @@ static int veth_xdp_set(struct net_devic |