<div dir="ltr">Hi Zhengbing,<br><br>Thanks. This patch contains a coding style error. Or <a href="http://checkpatch.pl">checkpatch.pl</a> error. There should be a space between the if and the opening bracket. Please run a <a href="http://checkpatch.pl">checkpatch.pl</a> on your end before sending patches.<br><br>I fixed it and applied it.<br><br>Best regards,<br> Philipp</div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, Jul 8, 2025 at 12:19 PM zhengbing.huang <<a href="mailto:zhengbing.huang@easystack.cn">zhengbing.huang@easystack.cn</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Have a crash call trace as follow:<br>
? bit_clear+0x120/0x120<br>
fbcon_putcs+0xe7/0x100<br>
fbcon_redraw.isra.20+0xfd/0x1e0<br>
fbcon_scroll+0x8c9/0xde0<br>
con_scroll+0x20b/0x220<br>
? bit_clear+0x120/0x120<br>
lf+0xa0/0xb0<br>
vt_console_print+0x310/0x400<br>
console_unlock+0x35f/0x4a0<br>
vprintk_emit+0x14d/0x250<br>
printk+0x58/0x6f<br>
dtr_tx_cq_event_handler+0x895/0x8a0 [drbd_transport_rdma]<br>
? sched_clock+0x5/0x10<br>
? do_IRQ+0x7f/0xd0<br>
mlx5_eq_comp_int+0xb0/0x1d0 [mlx5_core]<br>
notifier_call_chain+0x47/0x70<br>
atomic_notifier_call_chain+0x16/0x20<br>
irq_int_handler+0x11/0x20 [mlx5_core]<br>
<br>
and the code is:<br>
(gdb) l *dtr_tx_cq_event_handler+0x894<br>
0x3404 is in dtr_tx_cq_event_handler (.../drbd_transport_rdma.c:1935).<br>
1930 if (stream_nr != ST_FLOW_CTRL) {<br>
1931 err = dtr_repost_tx_desc(cm, tx_desc);<br>
1932 if (!err)<br>
1933 tx_desc = NULL; /* it is in the air again! Fly! */<br>
1934 else<br>
1935 tr_warn(transport, "repost of tx_desc failed! %d\n", err);<br>
1936 }<br>
<br>
This problem is that too many logs print in irq, cause the kernel crash.<br>
<br>
So, we ratelimit error log<br>
<br>
Signed-off-by: zhengbing.huang <<a href="mailto:zhengbing.huang@easystack.cn" target="_blank">zhengbing.huang@easystack.cn</a>><br>
---<br>
drbd/drbd_transport_rdma.c | 2 +-<br>
1 file changed, 1 insertion(+), 1 deletion(-)<br>
<br>
diff --git a/drbd/drbd_transport_rdma.c b/drbd/drbd_transport_rdma.c<br>
index 5270e503a..30edfaf96 100644<br>
--- a/drbd/drbd_transport_rdma.c<br>
+++ b/drbd/drbd_transport_rdma.c<br>
@@ -1920,7 +1920,7 @@ static int dtr_handle_tx_cq_event(struct ib_cq *cq, struct dtr_cm *cm)<br>
err = dtr_repost_tx_desc(cm, tx_desc);<br>
if (!err)<br>
tx_desc = NULL; /* it is in the air again! Fly! */<br>
- else<br>
+ else if(__ratelimit(&rdma_transport->rate_limit))<br>
tr_warn(transport, "repost of tx_desc failed! %d\n", err);<br>
}<br>
}<br>
-- <br>
2.43.0<br>
<br>
</blockquote></div>