Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1450545pxb; Wed, 10 Feb 2021 08:35:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJwW5fXzM3sd26on6j3HBA6HfEv3XclS3tikOpK5I9CJWGJ+GtxsicLHhjsKOUba1G+5iBBZ X-Received: by 2002:a05:6402:786:: with SMTP id d6mr3961080edy.270.1612974953002; Wed, 10 Feb 2021 08:35:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612974952; cv=none; d=google.com; s=arc-20160816; b=EfdUtIgWr2kmk7fYZxpexjqcF/kyJ3rKUeq1E+U1YCm3YMpPTfvDoDmwqw+Dg54U7H 6nmJZFMWT2C8K5oJer+Ni31nPbVmJ4zS+a1qaLOMk3hWFuTJ7W6VILZ0+9b+71gs79fj A72/RLKmg+DR1PC8LBZcukyNm3fcRvLIJfZ+BxSxCfT0vUUJUVc8OI8MG9jQuY89FzIs 23DReoqQYxaVGtXcIugyyw/FYXZicX26uBc9qvyvRz/+C63Tim5O3gMm/o4WDUpOmfS7 /Il8JczIIL2NVpnEbhT45jBS4nRZjl/l0AnJ4iMEZblfsvPESB6b4FZ8MYhF2k08Bljf 4Blw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:reply-to:cc:from:to :dkim-signature:date; bh=Iu39PWkHcnyDTGv7WOyrv1LnhouA/vrRXHYe5r+i40s=; b=mxmur/rFf8Cxpb0jZHL5mrFpR6P+HrInFQwkbScnhEJER2U85gzbUAFLL4yDojDBqx A0YXXqGDQhPE8ges4pUddwONPKTfGX5laJb67Kr8vi9Hz5tAcF50XhHbkn1NoPRqtYXR J9f0v9nSi/cTD/P/qY0RwzeZqVVqaDRw0ftQ2aDECKsx/kIEQbiOseMrA9DoRfdMPmFm EMTZyxQ6ocK0iuYsVuqYk05i0Z61sh2AS4lIsRZqmszGDIb8GijKJSak2mYvdfY5AR9E saIEySxzO827NEhTAtm4y5iR/coDSZfsn9x5tTYCqxXAI98b9EjV3BBwsRrj/6exAbK7 9oOQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@pm.me header.s=protonmail header.b=LxlIyDoU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=pm.me Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f23si1566692edj.313.2021.02.10.08.35.26; Wed, 10 Feb 2021 08:35:52 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@pm.me header.s=protonmail header.b=LxlIyDoU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=pm.me Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232565AbhBJQdQ (ORCPT + 99 others); Wed, 10 Feb 2021 11:33:16 -0500 Received: from mail2.protonmail.ch ([185.70.40.22]:37718 "EHLO mail2.protonmail.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231193AbhBJQal (ORCPT ); Wed, 10 Feb 2021 11:30:41 -0500 Date: Wed, 10 Feb 2021 16:29:52 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail; t=1612974598; bh=Iu39PWkHcnyDTGv7WOyrv1LnhouA/vrRXHYe5r+i40s=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=LxlIyDoU72YhyKCYRjmwu0vygtZWX0xPTcwPJvrFVXf7XaLSFYJQAXUVXfR1Fzugl afCfL2eqSOAsmmM2rd/WVwM+EKbp8qOv3oaWGvhuV6pOeKVCVNUWog3LQu4XF/t4u7 zHV2AtesElTJidAJWVWRiy+JrmbTD8DYtLpqHpO14CiSeCJ7FCmyO4CDRa1Tda3m3W OagXolKhBgA9AS6ZEnht91GYSucVR/iaiQpwaz7FtOdqrkx1Up/6PK7isnAkoSMHBQ uhGoC8FCRDaUFofxviYflC7radial1mZKF3WY7VMNYeafLC/dwXO7H7737AYh1pr2l YZ3EB4BjroxlQ== To: "David S. Miller" , Jakub Kicinski From: Alexander Lobakin Cc: Jonathan Lemon , Eric Dumazet , Dmitry Vyukov , Willem de Bruijn , Alexander Lobakin , Randy Dunlap , Kevin Hao , Pablo Neira Ayuso , Jakub Sitnicki , Marco Elver , Dexuan Cui , Paolo Abeni , Jesper Dangaard Brouer , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Taehee Yoo , Cong Wang , =?utf-8?Q?Bj=C3=B6rn_T=C3=B6pel?= , Miaohe Lin , Guillaume Nault , Yonghong Song , zhudi , Michal Kubecek , Marcelo Ricardo Leitner , Dmitry Safonov <0x7f454c46@gmail.com>, Yang Yingliang , Florian Westphal , Edward Cree , linux-kernel@vger.kernel.org, netdev@vger.kernel.org Reply-To: Alexander Lobakin Subject: [PATCH v4 net-next 06/11] skbuff: remove __kfree_skb_flush() Message-ID: <20210210162732.80467-7-alobakin@pm.me> In-Reply-To: <20210210162732.80467-1-alobakin@pm.me> References: <20210210162732.80467-1-alobakin@pm.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This function isn't much needed as NAPI skb queue gets bulk-freed anyway when there's no more room, and even may reduce the efficiency of bulk operations. It will be even less needed after reusing skb cache on allocation path, so remove it and this way lighten network softirqs a bit. Suggested-by: Eric Dumazet Signed-off-by: Alexander Lobakin --- include/linux/skbuff.h | 1 - net/core/dev.c | 6 +----- net/core/skbuff.c | 12 ------------ 3 files changed, 1 insertion(+), 18 deletions(-) diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 0a4e91a2f873..0e0707296098 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -2919,7 +2919,6 @@ static inline struct sk_buff *napi_alloc_skb(struct n= api_struct *napi, } void napi_consume_skb(struct sk_buff *skb, int budget); =20 -void __kfree_skb_flush(void); void __kfree_skb_defer(struct sk_buff *skb); =20 /** diff --git a/net/core/dev.c b/net/core/dev.c index 7647278e46f0..7134ae2fc0db 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -4944,8 +4944,6 @@ static __latent_entropy void net_tx_action(struct sof= tirq_action *h) =09=09=09else =09=09=09=09__kfree_skb_defer(skb); =09=09} - -=09=09__kfree_skb_flush(); =09} =20 =09if (sd->output_queue) { @@ -7041,7 +7039,7 @@ static __latent_entropy void net_rx_action(struct sof= tirq_action *h) =20 =09=09if (list_empty(&list)) { =09=09=09if (!sd_has_rps_ipi_waiting(sd) && list_empty(&repoll)) -=09=09=09=09goto out; +=09=09=09=09return; =09=09=09break; =09=09} =20 @@ -7068,8 +7066,6 @@ static __latent_entropy void net_rx_action(struct sof= tirq_action *h) =09=09__raise_softirq_irqoff(NET_RX_SOFTIRQ); =20 =09net_rps_action_and_irq_enable(sd); -out: -=09__kfree_skb_flush(); } =20 struct netdev_adjacent { diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 1c6f6ef70339..4be2bb969535 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -838,18 +838,6 @@ void __consume_stateless_skb(struct sk_buff *skb) =09kfree_skbmem(skb); } =20 -void __kfree_skb_flush(void) -{ -=09struct napi_alloc_cache *nc =3D this_cpu_ptr(&napi_alloc_cache); - -=09/* flush skb_cache if containing objects */ -=09if (nc->skb_count) { -=09=09kmem_cache_free_bulk(skbuff_head_cache, nc->skb_count, -=09=09=09=09 nc->skb_cache); -=09=09nc->skb_count =3D 0; -=09} -} - static inline void _kfree_skb_defer(struct sk_buff *skb) { =09struct napi_alloc_cache *nc =3D this_cpu_ptr(&napi_alloc_cache); --=20 2.30.1