lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 2 Sep 2017 17:30:08 +0200 From: Andrew Lunn <andrew@...n.ch> To: Vivien Didelot <vivien.didelot@...oirfairelinux.com> Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org, kernel@...oirfairelinux.com, "David S. Miller" <davem@...emloft.net>, Florian Fainelli <f.fainelli@...il.com> Subject: Re: [PATCH net-next 3/4] net: dsa: change dsa_ptr for a dsa_master Hi Vivien > diff --git a/include/net/dsa.h b/include/net/dsa.h > index f4a5afc4255b..d5b24cd10f79 100644 > --- a/include/net/dsa.h > +++ b/include/net/dsa.h > @@ -130,11 +130,6 @@ struct dsa_switch_tree { > */ > struct dsa_platform_data *pd; > > - /* Copy of tag_ops->rcv for faster access in hot path */ > - struct sk_buff * (*rcv)(struct sk_buff *skb, > - struct net_device *dev, > - struct packet_type *pt); > - > /* > * The switch port to which the CPU is attached. > */ > diff --git a/net/dsa/tag_dsa.c b/net/dsa/tag_dsa.c > index fbf9ca954773..7897bbd1a110 100644 > --- a/net/dsa/tag_dsa.c > +++ b/net/dsa/tag_dsa.c > @@ -67,7 +67,8 @@ static struct sk_buff *dsa_xmit(struct sk_buff *skb, struct net_device *dev) > static struct sk_buff *dsa_rcv(struct sk_buff *skb, struct net_device *dev, > struct packet_type *pt) > { > - struct dsa_switch_tree *dst = dev->dsa_ptr; > + struct dsa_master *master = dev->dsa_ptr; > + struct dsa_switch_tree *dst = master->port->ds->dst; This is on the hot path. Every frame received comes through here. We have gone from one dereference to 4 dereference. That is going to impact performance. How about keeping a copy of dst and ds in master? Andrew
Powered by blists - more mailing lists