netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH -next] net: core: set qdisc pkt len before tc_classify
@ 2015-05-12 13:37 Florian Westphal
  2015-05-12 14:22 ` Eric Dumazet
  0 siblings, 1 reply; 7+ messages in thread
From: Florian Westphal @ 2015-05-12 13:37 UTC (permalink / raw)
  To: netdev; +Cc: Florian Westphal

commit d2788d34885d4ce5ba ("net: sched: further simplify handle_ing")
removed the call to qdisc_enqueue_root().

However, after this removal we no longer set qdisc pkt length.
This breaks traffic policing on ingress.

Daniel re-ran his test with this patch applied and reports that
while there is a small performance hit the total gain vs. before
d2788d34885d4ce5ba is still consistently higher than 1Mpps.

Fixes: d2788d34885d ("net: sched: further simplify handle_ing")
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Florian Westphal <fw@strlen.de>
---
 net/core/dev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/core/dev.c b/net/core/dev.c
index e5f77c4..871181a 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3540,8 +3540,9 @@ static inline struct sk_buff *handle_ing(struct sk_buff *skb,
 		*pt_prev = NULL;
 	}
 
-	qdisc_bstats_update_cpu(cl->q, skb);
+	qdisc_skb_cb(skb)->pkt_len = skb->len;
 	skb->tc_verd = SET_TC_AT(skb->tc_verd, AT_INGRESS);
+	qdisc_bstats_update_cpu(cl->q, skb);
 
 	switch (tc_classify(skb, cl, &cl_res)) {
 	case TC_ACT_OK:
-- 
2.0.5

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-05-13 13:10 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-12 13:37 [PATCH -next] net: core: set qdisc pkt len before tc_classify Florian Westphal
2015-05-12 14:22 ` Eric Dumazet
2015-05-12 15:16   ` Florian Westphal
2015-05-12 17:03     ` Alexei Starovoitov
2015-05-13 11:02       ` Jamal Hadi Salim
2015-05-13 11:07         ` Jamal Hadi Salim
2015-05-13 13:10         ` Eric Dumazet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).