Re: [patch net-next v3 2/2] net: core: introduce mini_Qdisc and eliminate usage of tp->q for clsact fastpath
From: Alexei Starovoitov <hidden>
Date: 2017-11-01 16:11:25
From: Alexei Starovoitov <hidden>
Date: 2017-11-01 16:11:25
On Wed, Nov 01, 2017 at 09:18:03AM +0100, Jiri Pirko wrote:
Wed, Nov 01, 2017 at 03:12:50AM CET, alexei.starovoitov@gmail.com wrote:quoted
On Tue, Oct 31, 2017 at 04:12:22PM +0100, Jiri Pirko wrote:quoted
From: Jiri Pirko <redacted> In sch_handle_egress and sch_handle_ingress tp->q is used only in order to update stats. So stats and filter list are the only things that are needed in clsact qdisc fastpath processing. Introduce new mini_Qdisc struct to hold those items. Also, introduce a helper to swap the mini_Qdisc structures in case filter list head changes. This removes need for tp->q usage without added overhead. Signed-off-by: Jiri Pirko <redacted> --- v2->v3: - Using head change callback to replace miniq pointer every time tp head changes. This eliminates one rcu dereference and makes the claim "without added overhead" valid.you kidding, right? It's still two loads.I'm not. I replace: one rcu_dereference_bh(dev->egress_cl_list) by one rcu_dereference_bh(dev->miniq_egress) one dereference cl->q by one dereference miniq->filter_list What do I miss?
that in assembler code they are the same when debug is off ?