[{"id":1762139,"web_url":"http://patchwork.ozlabs.org/comment/1762139/","msgid":"<20170902153008.GA21003@lunn.ch>","list_archive_url":null,"date":"2017-09-02T15:30:08","subject":"Re: [PATCH net-next 3/4] net: dsa: change dsa_ptr for a dsa_master","submitter":{"id":13608,"url":"http://patchwork.ozlabs.org/api/people/13608/","name":"Andrew Lunn","email":"andrew@lunn.ch"},"content":"Hi Vivien\n\n\n> diff --git a/include/net/dsa.h b/include/net/dsa.h\n> index f4a5afc4255b..d5b24cd10f79 100644\n> --- a/include/net/dsa.h\n> +++ b/include/net/dsa.h\n> @@ -130,11 +130,6 @@ struct dsa_switch_tree {\n>  \t */\n>  \tstruct dsa_platform_data\t*pd;\n>  \n> -\t/* Copy of tag_ops->rcv for faster access in hot path */\n> -\tstruct sk_buff *\t(*rcv)(struct sk_buff *skb,\n> -\t\t\t\t       struct net_device *dev,\n> -\t\t\t\t       struct packet_type *pt);\n> -\n>  \t/*\n>  \t * The switch port to which the CPU is attached.\n>  \t */\n\n\n> diff --git a/net/dsa/tag_dsa.c b/net/dsa/tag_dsa.c\n> index fbf9ca954773..7897bbd1a110 100644\n> --- a/net/dsa/tag_dsa.c\n> +++ b/net/dsa/tag_dsa.c\n> @@ -67,7 +67,8 @@ static struct sk_buff *dsa_xmit(struct sk_buff *skb, struct net_device *dev)\n>  static struct sk_buff *dsa_rcv(struct sk_buff *skb, struct net_device *dev,\n>  \t\t\t       struct packet_type *pt)\n>  {\n> -\tstruct dsa_switch_tree *dst = dev->dsa_ptr;\n> +\tstruct dsa_master *master = dev->dsa_ptr;\n> +\tstruct dsa_switch_tree *dst = master->port->ds->dst;\n\nThis is on the hot path. Every frame received comes through here. We\nhave gone from one dereference to 4 dereference. That is going to\nimpact performance. \n\nHow about keeping a copy of dst and ds in master?\n\n    Andrew","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xl0Rm2vHwz9sRY\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSun,  3 Sep 2017 01:30:28 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752694AbdIBPaN (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tSat, 2 Sep 2017 11:30:13 -0400","from vps0.lunn.ch ([178.209.37.122]:54439 \"EHLO vps0.lunn.ch\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1751436AbdIBPaM (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tSat, 2 Sep 2017 11:30:12 -0400","from andrew by vps0.lunn.ch with local (Exim 4.84_2)\n\t(envelope-from <andrew@lunn.ch>)\n\tid 1doAN6-00016z-Fl; Sat, 02 Sep 2017 17:30:08 +0200"],"Date":"Sat, 2 Sep 2017 17:30:08 +0200","From":"Andrew Lunn <andrew@lunn.ch>","To":"Vivien Didelot <vivien.didelot@savoirfairelinux.com>","Cc":"netdev@vger.kernel.org, linux-kernel@vger.kernel.org,\n\tkernel@savoirfairelinux.com, \"David S. Miller\" <davem@davemloft.net>,\n\tFlorian Fainelli <f.fainelli@gmail.com>","Subject":"Re: [PATCH net-next 3/4] net: dsa: change dsa_ptr for a dsa_master","Message-ID":"<20170902153008.GA21003@lunn.ch>","References":"<20170831183746.2109-1-vivien.didelot@savoirfairelinux.com>\n\t<20170831183746.2109-4-vivien.didelot@savoirfairelinux.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20170831183746.2109-4-vivien.didelot@savoirfairelinux.com>","User-Agent":"Mutt/1.5.23 (2014-03-12)","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}}]