[PATCH net-next] net: minor optimization in qdisc_qstats_cpu_drop()

Subsystems: networking [general], the rest

STALE3644d

6 messages, 4 authors, 2016-08-25 · open the first message on its own page

[PATCH net-next] net: minor optimization in qdisc_qstats_cpu_drop()

From: Eric Dumazet <hidden>
Date: 2016-08-24 17:23:36

From: Eric Dumazet <edumazet@google.com>

per_cpu_inc() is faster (at least on x86) than per_cpu_ptr(xxx)++;

Signed-off-by: Eric Dumazet <edumazet@google.com>
---
 include/net/sch_generic.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index 0d501779cc68f9426e58da6d039dd64adc937c20..52a2015667b49c8315edbb26513a98d4c677fee5 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -592,7 +592,7 @@ static inline void qdisc_qstats_drop(struct Qdisc *sch)
 
 static inline void qdisc_qstats_cpu_drop(struct Qdisc *sch)
 {
-	qstats_drop_inc(this_cpu_ptr(sch->cpu_qstats));
+	this_cpu_inc(sch->cpu_qstats->drops);
 }
 
 static inline void qdisc_qstats_overlimit(struct Qdisc *sch)

Re: [PATCH net-next] net: minor optimization in qdisc_qstats_cpu_drop()

From: John Fastabend <john.fastabend@gmail.com>
Date: 2016-08-24 18:00:43

On 16-08-24 10:23 AM, Eric Dumazet wrote:
quoted hunk
From: Eric Dumazet <edumazet@google.com>

per_cpu_inc() is faster (at least on x86) than per_cpu_ptr(xxx)++;

Signed-off-by: Eric Dumazet <edumazet@google.com>
---
 include/net/sch_generic.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index 0d501779cc68f9426e58da6d039dd64adc937c20..52a2015667b49c8315edbb26513a98d4c677fee5 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -592,7 +592,7 @@ static inline void qdisc_qstats_drop(struct Qdisc *sch)
 
 static inline void qdisc_qstats_cpu_drop(struct Qdisc *sch)
 {
-	qstats_drop_inc(this_cpu_ptr(sch->cpu_qstats));
+	this_cpu_inc(sch->cpu_qstats->drops);
 }
 
 static inline void qdisc_qstats_overlimit(struct Qdisc *sch)
Looks good to me. I guess we can also do the same for overlimit qstats.

Acked-by: John Fastabend <redacted>

Re: [PATCH net-next] net: minor optimization in qdisc_qstats_cpu_drop()

From: Rick Jones <hidden>
Date: 2016-08-24 18:05:46

On 08/24/2016 10:23 AM, Eric Dumazet wrote:
From: Eric Dumazet <edumazet@google.com>

per_cpu_inc() is faster (at least on x86) than per_cpu_ptr(xxx)++;
Is it possible it is non-trivially slower on other architectures?

rick jones
quoted hunk
Signed-off-by: Eric Dumazet <edumazet@google.com>
---
 include/net/sch_generic.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index 0d501779cc68f9426e58da6d039dd64adc937c20..52a2015667b49c8315edbb26513a98d4c677fee5 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -592,7 +592,7 @@ static inline void qdisc_qstats_drop(struct Qdisc *sch)

 static inline void qdisc_qstats_cpu_drop(struct Qdisc *sch)
 {
-	qstats_drop_inc(this_cpu_ptr(sch->cpu_qstats));
+	this_cpu_inc(sch->cpu_qstats->drops);
 }

 static inline void qdisc_qstats_overlimit(struct Qdisc *sch)

Re: [PATCH net-next] net: minor optimization in qdisc_qstats_cpu_drop()

From: Eric Dumazet <hidden>
Date: 2016-08-24 19:14:12

On Wed, 2016-08-24 at 11:00 -0700, John Fastabend wrote:
Looks good to me. I guess we can also do the same for overlimit qstats.

Acked-by: John Fastabend <redacted>
Not sure about overlimit, although I could probably change these :

net/sched/act_bpf.c:85:         qstats_drop_inc(this_cpu_ptr(prog->common.cpu_qstats));
net/sched/act_gact.c:145:               qstats_drop_inc(this_cpu_ptr(gact->common.cpu_qstats));

Re: [PATCH net-next] net: minor optimization in qdisc_qstats_cpu_drop()

From: Eric Dumazet <hidden>
Date: 2016-08-24 19:19:11

On Wed, 2016-08-24 at 11:04 -0700, Rick Jones wrote:
On 08/24/2016 10:23 AM, Eric Dumazet wrote:
quoted
From: Eric Dumazet <edumazet@google.com>

per_cpu_inc() is faster (at least on x86) than per_cpu_ptr(xxx)++;
Is it possible it is non-trivially slower on other architectures?
No, in the worst case, compiler would emit the same code.

Re: [PATCH net-next] net: minor optimization in qdisc_qstats_cpu_drop()

From: David Miller <hidden>
Date: 2016-08-25 23:47:10

From: Eric Dumazet <redacted>
Date: Wed, 24 Aug 2016 10:23:34 -0700
From: Eric Dumazet <edumazet@google.com>

per_cpu_inc() is faster (at least on x86) than per_cpu_ptr(xxx)++;

Signed-off-by: Eric Dumazet <edumazet@google.com>
Applied.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help