On Tue, 20 Aug 2019 15:32:29 -0700, Matthew Wilcox wrote: > From: "Matthew Wilcox (Oracle)" <wi...@infradead.org> > > A minor change in semantics where we simply store into the XArray rather > than insert; this only matters if there could already be something stored > at that index, and from my reading of the code that can't happen. > > Use xa_for_each() rather than xas_for_each() as none of these loops > appear to be performance-critical. > > Signed-off-by: Matthew Wilcox (Oracle) <wi...@infradead.org>
Looks reasonable (indeed IIRC there should not be anything at the index we try to store to). I'll try to test tomorrow (CCing maintainers could speed things up a little.. ðŸ¤) > @@ -285,9 +275,9 @@ static void > nfp_abm_qdisc_clear_mq(struct net_device *netdev, struct nfp_abm_link *alink, > struct nfp_qdisc *qdisc) > { > - struct radix_tree_iter iter; > unsigned int mq_refs = 0; > - void __rcu **slot; > + unsigned long index; > + struct nfp_qdisc *mq; Could you keep the variables sorted longest to shortest as is customary in networking code if you respin?