Thread (5 messages) 5 messages, 3 authors, 2020-09-18

Re: Packet gets stuck in NOLOCK pfifo_fast qdisc

From: Cong Wang <hidden>
Date: 2020-09-10 20:19:40
Also in: lkml

Possibly related (same subject, not in this thread)

On Thu, Sep 3, 2020 at 8:21 PM Kehuan Feng [off-list ref] wrote:
I also tried Cong's patch (shown below on my tree) and it could avoid
the issue (stressing for 30 minutus for three times and not jitter
observed).
Thanks for verifying it!
quoted hunk ↗ jump to hunk
--- ./include/net/sch_generic.h.orig 2020-08-21 15:13:51.787952710 +0800
+++ ./include/net/sch_generic.h 2020-09-03 21:36:11.468383738 +0800
@@ -127,8 +127,7 @@
 static inline bool qdisc_run_begin(struct Qdisc *qdisc)
 {
  if (qdisc->flags & TCQ_F_NOLOCK) {
- if (!spin_trylock(&qdisc->seqlock))
- return false;
+ spin_lock(&qdisc->seqlock);
  } else if (qdisc_is_running(qdisc)) {
  return false;
  }
I am not actually know what you are discussing above. It seems to me
that Cong's patch is similar as disabling lockless feature.
From performance's perspective, yeah. Did you see any performance
downgrade with my patch applied? It would be great if you can compare
it with removing NOLOCK. And if the performance is as bad as no
NOLOCK, then we can remove the NOLOCK bit for pfifo_fast, at least
for now.

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