Re: [PATCH 2/3] rdma: ratelimit error log
ZhengbingHuang <[email protected]> Thu, 31 Jul 2025 10:26:34 +0800 (GMT+08:00)
| Newsgroups | dev.linux.lists.drbd-dev |
|---|---|
| Message-ID | <AF2AsQAyLwxQ5QDNtMtEvapF.3.1753928794193.Hmail.zhengbing.huang@easystack.cn> |
Hi Philipp, Thanks for reply. I will run checkpatch.pl next time. Best regards, Zhengbing [email protected] Original: From:Philipp Reisner <[email protected]>Date:2025-07-30 22:19:20(中国 (GMT+08:00))To:zhengbing.huang<[email protected]>Cc:drbd-dev<[email protected]>Subject:Re: [PATCH 2/3] rdma: ratelimit error logHi Zhengbing, Thanks. This patch contains a coding style error. Or checkpatch.pl error. There should be a space between the if and the opening bracket. Please run a checkpatch.pl on your end before sending patches. I fixed it and applied it. Best regards, Philipp On Tue, Jul 8, 2025 at 12:19 PM zhengbing.huang <[email protected]> wrote: Have a crash call trace as follow: ? bit_clear+0x120/0x120 fbcon_putcs+0xe7/0x100 fbcon_redraw.isra.20+0xfd/0x1e0 fbcon_scroll+0x8c9/0xde0 con_scroll+0x20b/0x220 ? bit_clear+0x120/0x120 lf+0xa0/0xb0 vt_console_print+0x310/0x400 console_unlock+0x35f/0x4a0 vprintk_emit+0x14d/0x250 printk+0x58/0x6f dtr_tx_cq_event_handler+0x895/0x8a0 [drbd_transport_rdma] ? sched_clock+0x5/0x10 ? do_IRQ+0x7f/0xd0 mlx5_eq_comp_int+0xb0/0x1d0 [mlx5_core] notifier_call_chain+0x47/0x70 atomic_notifier_call_chain+0x16/0x20 irq_int_handler+0x11/0x20 [mlx5_core] and the code is: (gdb) l *dtr_tx_cq_event_handler+0x894 0x3404 is in dtr_tx_cq_event_handler (.../drbd_transport_rdma.c:1935). 1930 if (stream_nr != ST_FLOW_CTRL) { 1931 err = dtr_repost_tx_desc(cm, tx_desc); 1932 if (!err) 1933 tx_desc = NULL; /* it is in the air again! Fly! */ 1934 else 1935 tr_warn(transport, "repost of tx_desc failed! %d\n", err); 1936 } This problem is that too many logs print in irq, cause the kernel crash. So, we ratelimit error log Signed-off-by: zhengbing.huang <[email protected]> --- drbd/drbd_transport_rdma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drbd/drbd_transport_rdma.c b/drbd/drbd_transport_rdma.c index 5270e503a..30edfaf96 100644 --- a/drbd/drbd_transport_rdma.c +++ b/drbd/drbd_transport_rdma.c @@ -1920,7 +1920,7 @@ static int dtr_handle_tx_cq_event(struct ib_cq *cq, struct dtr_cm *cm) err = dtr_repost_tx_desc(cm, tx_desc); if (!err) tx_desc = NULL; /* it is in the air again! Fly! */ - else + else if(__ratelimit(&rdma_transport->rate_limit)) tr_warn(transport, "repost of tx_desc failed! %d\n", err); } } -- 2.43.0