Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp2388524pxb; Thu, 11 Feb 2021 11:02:51 -0800 (PST) X-Google-Smtp-Source: ABdhPJxGVuRjVBev38wH6EnSKC3HYTI8YEk7Y7kMMpaJsMSzouYtdlnaq2dM8Pt1Q5BarUazo5qh X-Received: by 2002:a17:906:3883:: with SMTP id q3mr9737803ejd.160.1613070171373; Thu, 11 Feb 2021 11:02:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613070171; cv=none; d=google.com; s=arc-20160816; b=fqTMJQd8NBe3d3SfmbRPmGfhyQi7BT+PcX5LQONJDgahmEJgs56jW3Rcqrf8NjNkUO 5XQgcceVq8XW0SB0Eupa9MGOCuHr01IhE8XjfFeLsOTSEFV0Ea+SAiiUf1iYvK2SFtKb w3Bt41WCf7DQB6S4pyja3gmRm0xKTFvArCQx320HuUgSViG4nJkHk+xwKfQy1UcwgOIZ LyDL8JMR7v6ETTkKQtamdG8YTiev7L6u7EdthBDL/OjdbBT6ndtidsTdnQBbhkKPgt86 LrsNF5v6lrT7IClHk3hqxd1kXSEznREp68p0/3+ab808TXkviQHo+GhOKdV1FLe6NHvp aEGg== 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=QfKdtGfY1AFcBLPik/7jwC6fjjYNviRZUAIIEIHseOQ=; b=IfPsl2r+hNPsc9/OZJV8tcBrtMxOlSxCobS7W1oV4axJ9u37ddh//hbCO8v/wGTRv8 IuTlNjAOlJxr16Ke4FAYH4uemumPJ85U1MplhfH8iHoKZXLRQqbCHCzepRuWwQNz2/6U Y/Zwk6Hbj6qee7i4wpva+772kq0mX9G8JannrNjg5aDOesoM6kZKluqSemr0CZAM0Mue MtLHJsjZRvEe71vi8lICAwJwA3zC0wuOTjcZd5tFdwCGz6XxyP39+FsgpAH5aDg13r4N BC++IVt92aXHrPk7N9vkhEaD7rZ8HbfaDYYr3+jFfuH9rtxcG5jFZJSIM2JMfC1dgLUY gZFA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@pm.me header.s=protonmail header.b="B2bUHK/R"; 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 a67si4659437edf.42.2021.02.11.11.02.15; Thu, 11 Feb 2021 11:02:51 -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="B2bUHK/R"; 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 S231339AbhBKS5P (ORCPT + 99 others); Thu, 11 Feb 2021 13:57:15 -0500 Received: from mail-40134.protonmail.ch ([185.70.40.134]:18105 "EHLO mail-40134.protonmail.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230448AbhBKSzB (ORCPT ); Thu, 11 Feb 2021 13:55:01 -0500 Date: Thu, 11 Feb 2021 18:54:12 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail; t=1613069659; bh=QfKdtGfY1AFcBLPik/7jwC6fjjYNviRZUAIIEIHseOQ=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=B2bUHK/RclDwtBB+qlDrG4BTMN/IZMJAPqhTRqm3s+Q8wDE7PbAIxA2h4Gp+Zt1eQ KjIguOJQSlz3ZGwRfvG/Hjhj64iva/4As/fBjZeipQXnboLSMRZKs0uXnnHAOppnKX HsnW6WsfanDv1hF47hqZTUj6omIArUeKtKafg6tfSGRonOyOR9K95d/T0uxlTTGLoF 1YmO9VSRATSZPsGz5LladIqRVLfl2GuB+3O+YmroKX+HfVPY5B7pYcKwlw4uqAzAHO bpS6uikCPa5G6ng4xoU8crYlJI41dbvOvUb1mLaSmA2UYI0yQfZaqxYQBcxf2dEL9a +UqX+OCxM3UsQ== 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 , Alexander Duyck , 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 v5 net-next 06/11] skbuff: remove __kfree_skb_flush() Message-ID: <20210211185220.9753-7-alobakin@pm.me> In-Reply-To: <20210211185220.9753-1-alobakin@pm.me> References: <20210211185220.9753-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 | 7 +------ net/core/skbuff.c | 12 ------------ 3 files changed, 1 insertion(+), 19 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 321d41a110e7..4154d4683bb9 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) { @@ -7012,7 +7010,6 @@ static int napi_threaded_poll(void *data) =09=09=09__napi_poll(napi, &repoll); =09=09=09netpoll_poll_unlock(have); =20 -=09=09=09__kfree_skb_flush(); =09=09=09local_bh_enable(); =20 =09=09=09if (!repoll) @@ -7042,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 @@ -7069,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