[PATCH net-next] FDDI: defxx: Rate-limit memory allocation errors

Maciej W. Rozycki posted 1 patch 1 week ago
drivers/net/fddi/defxx.c |    2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH net-next] FDDI: defxx: Rate-limit memory allocation errors
Posted by Maciej W. Rozycki 1 week ago
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>
---
 drivers/net/fddi/defxx.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

linux-defxx-ratelimit.diff
Index: linux-macro/drivers/net/fddi/defxx.c
===================================================================
--- linux-macro.orig/drivers/net/fddi/defxx.c
+++ linux-macro/drivers/net/fddi/defxx.c
@@ -3182,7 +3182,7 @@ static void dfx_rcv_queue_process(
 							       pkt_len + 3);
 				if (skb == NULL)
 					{
-					printk("%s: Could not allocate receive buffer.  Dropping packet.\n", bp->dev->name);
+					printk_ratelimited("%s: Could not allocate receive buffer.  Dropping packet.\n", bp->dev->name);
 					bp->rcv_discards++;
 					break;
 					}
Re: [PATCH net-next] FDDI: defxx: Rate-limit memory allocation errors
Posted by Andrew Lunn 6 days, 20 hours ago
On Sun, Mar 29, 2026 at 01:32:25PM +0100, Maciej W. Rozycki wrote:
> 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>

    Andrew