]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Revert "drop queue-5.4/net-core-use-listified-rx-for-gro_normal-in-napi_gro_receive...
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 9 Sep 2020 08:50:58 +0000 (10:50 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 9 Sep 2020 08:50:58 +0000 (10:50 +0200)
This reverts commit 0cace9a18b566886a71315e174ce8d8b37652627.

queue-5.4/net-core-use-listified-rx-for-gro_normal-in-napi_gro_receive.patch [new file with mode: 0644]
queue-5.4/series

diff --git a/queue-5.4/net-core-use-listified-rx-for-gro_normal-in-napi_gro_receive.patch b/queue-5.4/net-core-use-listified-rx-for-gro_normal-in-napi_gro_receive.patch
new file mode 100644 (file)
index 0000000..94a5dd7
--- /dev/null
@@ -0,0 +1,60 @@
+From 6570bc79c0dfff0f228b7afd2de720fb4e84d61d Mon Sep 17 00:00:00 2001
+From: Alexander Lobakin <alobakin@pm.me>
+Date: Mon, 14 Oct 2019 11:00:33 +0300
+Subject: net: core: use listified Rx for GRO_NORMAL in napi_gro_receive()
+
+From: Alexander Lobakin <alobakin@dlink.ru>
+
+commit 6570bc79c0dfff0f228b7afd2de720fb4e84d61d upstream.
+
+Commit 323ebb61e32b4 ("net: use listified RX for handling GRO_NORMAL
+skbs") made use of listified skb processing for the users of
+napi_gro_frags().
+The same technique can be used in a way more common napi_gro_receive()
+to speed up non-merged (GRO_NORMAL) skbs for a wide range of drivers
+including gro_cells and mac80211 users.
+This slightly changes the return value in cases where skb is being
+dropped by the core stack, but it seems to have no impact on related
+drivers' functionality.
+gro_normal_batch is left untouched as it's very individual for every
+single system configuration and might be tuned in manual order to
+achieve an optimal performance.
+
+Signed-off-by: Alexander Lobakin <alobakin@dlink.ru>
+Acked-by: Edward Cree <ecree@solarflare.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Hyunsoon Kim <h10.kim@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/core/dev.c |    9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -5602,12 +5602,13 @@ static void napi_skb_free_stolen_head(st
+       kmem_cache_free(skbuff_head_cache, skb);
+ }
+-static gro_result_t napi_skb_finish(gro_result_t ret, struct sk_buff *skb)
++static gro_result_t napi_skb_finish(struct napi_struct *napi,
++                                  struct sk_buff *skb,
++                                  gro_result_t ret)
+ {
+       switch (ret) {
+       case GRO_NORMAL:
+-              if (netif_receive_skb_internal(skb))
+-                      ret = GRO_DROP;
++              gro_normal_one(napi, skb);
+               break;
+       case GRO_DROP:
+@@ -5639,7 +5640,7 @@ gro_result_t napi_gro_receive(struct nap
+       skb_gro_reset_offset(skb);
+-      ret = napi_skb_finish(dev_gro_receive(napi, skb), skb);
++      ret = napi_skb_finish(napi, skb, dev_gro_receive(napi, skb));
+       trace_napi_gro_receive_exit(ret);
+       return ret;
index 81d7c16e480c65ae32f3788667b267e985a22a8c..51e5a524a58120614e6b92f1766934cc8e07d86a 100644 (file)
@@ -83,6 +83,7 @@ btrfs-allocate-scrub-workqueues-outside-of-locks.patch
 btrfs-set-the-correct-lockdep-class-for-new-nodes.patch
 btrfs-set-the-lockdep-class-for-log-tree-extent-buffers.patch
 btrfs-tree-checker-fix-the-error-message-for-transid-error.patch
+net-core-use-listified-rx-for-gro_normal-in-napi_gro_receive.patch
 btrfs-fix-potential-deadlock-in-the-search-ioctl.patch
 revert-net-dsa-microchip-set-the-correct-number-of-p.patch
 revert-alsa-hda-add-support-for-loongson-7a1000-controller.patch