Prevent the system from becoming unstable or unusable due to a flood of
memory allocation error messages under memory pressure, e.g.:
[...]
fddi0: Could not allocate receive buffer. Dropping packet.
fddi0: Could not allocate receive buffer. Dropping packet.
fddi0: Could not allocate receive buffer. Dropping packet.
fddi0: Could not allocate receive buffer. Dropping packet.
rcu: INFO: rcu_sched self-detected stall on CPU
rcu: 0-...!: (332 ticks this GP) idle=255c/1/0x40000000 softirq=
16420123/
16420123 fqs=0
rcu: (t=2103 jiffies g=
35680089 q=4 ncpus=1)
rcu: rcu_sched kthread timer wakeup didn't happen for 2102 jiffies! g35680089 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x402
rcu: Possible timer handling issue on cpu=0 timer-softirq=
12779658
rcu: rcu_sched kthread starved for 2103 jiffies! g35680089 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x402 ->cpu=0
rcu: Unless rcu_sched kthread gets sufficient CPU time, OOM is now expected behavior.
rcu: RCU grace-period kthread stack dump:
task:rcu_sched state:I stack:0 pid:14 tgid:14 ppid:2 flags:0x00004000
Call Trace:
__schedule+0x258/0x580
schedule+0x19/0xa0
schedule_timeout+0x4a/0xb0
? hrtimers_cpu_dying+0x1b0/0x1b0
rcu_gp_fqs_loop+0xb1/0x450
rcu_gp_kthread+0x9d/0x130
kthread+0xb2/0xe0
? rcu_gp_init+0x4a0/0x4a0
? kthread_park+0x90/0x90
ret_from_fork+0x2d/0x50
? kthread_park+0x90/0x90
ret_from_fork_asm+0x12/0x20
entry_INT80_32+0x10d/0x10d
CPU: 0 UID: 500 PID: 21895 Comm: 31370.exe Not tainted 6.13.0-dirty #2
(here running the libstdc++-v3 testsuite).
Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/alpine.DEB.2.21.2603291236590.60268@angie.orcam.me.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>