On Fri, Mar 12, 2021 at 12:36:41PM +0100, Frederic Weisbecker wrote:
> On Wed, Mar 03, 2021 at 04:00:15PM -0800, [email protected] wrote:
> > From: "Paul E. McKenney" <[email protected]>
> >
> > If there is heavy softirq activity, the softirq system will attempt
> > to awaken ksoftirqd and will stop the traditional back-of-interrupt
> > softirq processing. This is all well and good, but only if the
> > ksoftirqd kthreads already exist, which is not the case during early
> > boot, in which case the system hangs.
> >
> > One reproducer is as follows:
> >
> > tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --duration 2
> > --configs "TREE03" --kconfig "CONFIG_DEBUG_LOCK_ALLOC=y
> > CONFIG_PROVE_LOCKING=y CONFIG_NO_HZ_IDLE=y CONFIG_HZ_PERIODIC=n" --bootargs
> > "threadirqs=1" --trust-make
> >
> > This commit therefore adds a couple of existence checks for ksoftirqd
> > and forces back-of-interrupt softirq processing when ksoftirqd does not
> > yet exist. With this change, the above test passes.
> >
> > Reported-by: Sebastian Andrzej Siewior <[email protected]>
> > Reported-by: Uladzislau Rezki <[email protected]>
> > Cc: Peter Zijlstra <[email protected]>
> > Cc: Thomas Gleixner <[email protected]>
> > [ paulmck: Remove unneeded check per Sebastian Siewior feedback. ]
> > Signed-off-by: Paul E. McKenney <[email protected]>
>
> Reviewed-by: Frederic Weisbecker <[email protected]>
Applied, thank you!
Thanx, Paul