Received: by 2002:ac0:8c9a:0:0:0:0:0 with SMTP id r26csp1083498ima; Fri, 1 Feb 2019 16:11:12 -0800 (PST) X-Google-Smtp-Source: ALg8bN5rFeLPv4arB8MJj/0xC94sWFCXcOFBfE8ada1Rkj+jXkBElOz7wBBW8AKLtme3XiZNwtuI X-Received: by 2002:a17:902:708b:: with SMTP id z11mr41878812plk.203.1549066272415; Fri, 01 Feb 2019 16:11:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549066272; cv=none; d=google.com; s=arc-20160816; b=NzmZzXZnzOPhNistvVlyIYnFfhgMoO7fgJGRIihZ2XhKezWNmvfOQq/30oRdYthcx0 R04Q2NOF1/4lsVG1Kwp9oO5m3nn0m6gqPduim52JNT6d2NyxxEaQxwXFwjteXGg5Qyul cZTefWz6jnm81UpMgwBRrQ73x2MY9qPHX3m1tYJH8GXTu5iQM1j9LMzlitPHBe85nGUc LAyCQonFbHrdPwj1GqPvh+3Rmnp+fjTJUMKeA5bRieSnHEMFuxGjAZx4KqajUbCMhRzx UTFBIPkw+Pk/CtfHwpUpdlYHE8VwoD2lhug0u2jaGm7Sx8TOtqxgPoCj9/I2sbHeZpCO po6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:references:cc:to:subject:from; bh=xvJvLcGstHCQ5JK8G0wYRy0ODEAEiNH28Q0na11BubM=; b=ruyjOJsg/9gzhESH9yBfttpLuZKK92bjlSvGQM0O/uDXFBad4lxxRQxFkBSZreyX9j EaUjB200Siei2R5NE2ZU/sk6Sc6xDemFl9f25Q7d0CVUhSl9RtHZqDGx+GXNYIq/T2/e A4WCB7qV1+2p0+PbCoWvWRNz5I5hcN4uM3M5iwq4+9RpMxoesNInZB1RWMhzicTMV174 wXb2JG7/IwD5ue22Pk3ce4RuzfNmgllLzoObWyNL+myd2preK41wCsDCpYfspKZHuMzt 0GyRzY1wLUXO95pdf8+2K7mJOzTsk+aKjKgDk0cxfS3c2xEYamcSDe9Q7rx41XCaNa7x J/sg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c4si8448180pfi.110.2019.02.01.16.10.56; Fri, 01 Feb 2019 16:11:12 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727582AbfBBAIN (ORCPT + 99 others); Fri, 1 Feb 2019 19:08:13 -0500 Received: from dispatch1-us1.ppe-hosted.com ([148.163.129.52]:53874 "EHLO dispatch1-us1.ppe-hosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726121AbfBBAIN (ORCPT ); Fri, 1 Feb 2019 19:08:13 -0500 X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (webmail.solarflare.com [12.187.104.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us4.ppe-hosted.com (Proofpoint Essentials ESMTP Server) with ESMTPS id 43A164C007D; Sat, 2 Feb 2019 00:08:12 +0000 (UTC) Received: from ec-desktop.uk.solarflarecom.com (10.17.20.45) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 1 Feb 2019 16:08:08 -0800 From: Edward Cree Subject: [RFC PATCH v2 4/4] net: core: use a dynamic_call for pt_prev->list_func() in list RX path To: , CC: , References: <1c8bfbb9-c76f-85d7-f6e2-aba33d5950b0@solarflare.com> Message-ID: Date: Sat, 2 Feb 2019 00:08:07 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <1c8bfbb9-c76f-85d7-f6e2-aba33d5950b0@solarflare.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-GB Content-Transfer-Encoding: 7bit X-Originating-IP: [10.17.20.45] X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24400.005 X-TM-AS-Result: No-1.439700-4.000000-10 X-TMASE-MatchedRID: icnKRxfRUvGHYS4ybQtcOomfV7NNMGm+lV2LeD3ayQ9aW2Ktn+I8/sCS 2AMm1nQCeR3niegaOQ/1OL35ZxMCyoJrRWPc34Z+A9lly13c/gGXYX34rFl3x/uoLVXE/uWaLMn zP2AaqkymuE8sHNH+0b0YCPFWdc3lyO17Z2gPUCscsSroYI5AVn0tCKdnhB58vqq8s2MNhPCZMP CnTMzfOiq2rl3dzGQ1GpeevGsoI5fBIOFd328YBL3WVxaRKdFeiwsNxMTHzcg2qBy2Fxx8nfC+O io+/vdTFU0pzJYD24xRHPth62aQGki07t+6+hrgRYse5epR3i9azAigVxdXeiNlTYIDFiQj+C4I K5rEYL08DQfgROz55X7cGd19dSFd X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--1.439700-4.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24400.005 X-MDID: 1549066092-0JYaXF1wtikh Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There are currently only two possible callees, ip_list_rcv and ipv6_list_rcv. Even when more are added, most packets will typically follow one of a small number of callees on any given system. Signed-off-by: Edward Cree --- net/core/dev.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/net/core/dev.c b/net/core/dev.c index 7b38a33689d8..ecf41618a279 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -5006,6 +5006,9 @@ int netif_receive_skb_core(struct sk_buff *skb) } EXPORT_SYMBOL(netif_receive_skb_core); +DYNAMIC_CALL_3(void, deliver_skb_list, struct list_head *, struct packet_type *, + struct net_device *); + static inline void __netif_receive_skb_list_ptype(struct list_head *head, struct packet_type *pt_prev, struct net_device *orig_dev) @@ -5017,7 +5020,8 @@ static inline void __netif_receive_skb_list_ptype(struct list_head *head, if (list_empty(head)) return; if (pt_prev->list_func != NULL) - pt_prev->list_func(head, pt_prev, orig_dev); + dynamic_deliver_skb_list(pt_prev->list_func, head, pt_prev, + orig_dev); else list_for_each_entry_safe(skb, next, head, list) dynamic_deliver_skb(pt_prev->func, skb, skb->dev,