Thread (11 messages) 11 messages, 4 authors, 2017-11-03

Re: [patch net-next v3 2/2] net: core: introduce mini_Qdisc and eliminate usage of tp->q for clsact fastpath

From: Jiri Pirko <jiri@resnulli.us>
Date: 2017-11-02 11:27:30

Wed, Nov 01, 2017 at 05:11:14PM CET, alexei.starovoitov@gmail.com wrote:
On Wed, Nov 01, 2017 at 09:18:03AM +0100, Jiri Pirko wrote:
quoted
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 ?
Pardon my ignorance, but I don't get your point :( Could you please
elaborate a bit more? Thanks!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help