Skip to content

RFC softirq: Per vector threading v2

Frederic Weisbecker lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest5 patches 7 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5softirq: Account time and iteration stats per vectorkernel/softirq.c+26 -150 replies
2/5softirq: Per vector deferment to workqueueinclude/linux/interrupt.h kernel/sched/cputime.c kernel/softirq.c +1 more+117 -140 replies
3/5softirq: Defer to workqueue when rescheduling is neededkernel/softirq.c+8 -100 replies
4/5softirq: Replace ksoftirqd with workqueues entirelyDocumentation/RCU/stallwarn.txt include/linux/interrupt.h kernel/sched/cputime.c +3 more+31 -880 replies
5/5softirq: Reset vector call counter before workqueue completionkernel/softirq.c+5 -20 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC PATCH 0/5] softirq: Per vector threading v2

So this set is in a testable state. I addressed preliminary reviews from Eric Dumazet, Paolo Abeni and Linus.

You may want to play with MAX_SOFTIRQ_RESTART value, which is now the number of calls allowed for a vector in a jiffy frame before it gets queued to the workqueue. I set it to the arbitrary value of 20 which is likely too low.

Also I'm not sure about the last patch. For example in the usecase of Dmitry Safonov it may be better not to apply it. I guess only testing and reviews can tell.

git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
softirq/thread

HEAD: 5a4c02b25bdcd853e3874d5319492ea6097f6e70

Thanks,
Frederic
---

Frederic Weisbecker (5):
softirq: Account time and iteration stats per vector
softirq: Per vector deferment to workqueue
softirq: Defer to workqueue when rescheduling is needed
softirq: Replace ksoftirqd with workqueues entirely
softirq: Reset vector call counter before workqueue completion

 Documentation/RCU/stallwarn.txt |   4 +-
 include/linux/interrupt.h       |   7 +-
 kernel/sched/cputime.c          |  12 +--
 kernel/sched/sched.h            |   4 +-
 kernel/softirq.c                | 232 +++++++++++++++++++++++++---------------
 net/ipv4/tcp_output.c           |   5 +-
 6 files changed, 161 insertions(+), 103 deletions(-)