Re: BUG: sleeping function called from invalid context at include/linux/sched/mm.h:256

From: Paul Menzel
Date: Sun Feb 13 2022 - 12:27:02 EST


Dear Paul,


Am 13.02.22 um 15:45 schrieb Paul E. McKenney:
On Sun, Feb 13, 2022 at 08:39:13AM +0100, Paul Menzel wrote:

Am 13.02.22 um 00:48 schrieb Paul E. McKenney:
On Sun, Feb 13, 2022 at 12:05:50AM +0100, Paul Menzel wrote:

[…]

Running rcutorture on the POWER8 system IBM S822LC with Ubuntu 20.10, it
found the bug below. I more or less used rcu/dev (0ba8896d2fd7
(lib/irq_poll: Declare IRQ_POLL softirq vector as ksoftirqd-parking safe))
[1]. The bug manifested for the four configurations below.

1. results-rcutorture-kasan/SRCU-T
2. results-rcutorture-kasan/TINY02
3. results-rcutorture/SRCU-T
4. results-rcutorture/TINY02

Adding Frederic on CC...

I am dropping these three for the moment:

0ba8896d2fd75 lib/irq_poll: Declare IRQ_POLL softirq vector as ksoftirqd-parking safe
efa8027149a1f tick/rcu: Stop allowing RCU_SOFTIRQ in idle
d338d22b9d338 tick/rcu: Remove obsolete rcu_needs_cpu() parameters

Though it might be that these are victims of circumstance, in other
words, that the original bug that Paul Menzel reported was caused by
something else.

Even without these three patches, the issue is reproducible. I tested commit
7a935b7ac61b (tools/nolibc/stdlib: implement abort()).

Ah, I thought you were saying that the issue was caused by them.

I will put them back. And apologies to Frederic for kicking his
patches out!

Sorry for being unclear.

Are you able to bisect to see what commit introduced the problem?

I have not checked yet, if it’s a regression. I am going to test it next week.

[…]


Kind regards,