Re: WARN_ON() in netconsole with PREEMPT_RT
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2018-11-12 02:01:08
Also in:
linux-rt-users, lkml
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2018-11-12 02:01:08
Also in:
linux-rt-users, lkml
On Sun, 11 Nov 2018 21:16:00 +0100 Oleksandr Natalenko [off-list ref] wrote:
quoted
This is a v4.19.1-rt3-based kernel. The WARN_ON() is: 362 void netpoll_send_udp(struct netpoll *np, const char *msg, int len) 363 { … 372 WARN_ON_ONCE(!irqs_disabled()); … If that matters, I have "threadirqs" passed to the kernel. Netconsole seems to work even after this warning. Is this OK/expected? Thanks.Oh, I see that write_msg() calls netpoll_send_udp() under spin_lock_irqsave(), but in PREEMPT_RT this, AFAIK, does not disable interrupts. So, the real question here is whether the interrupts should be indeed disabled. And if so, -rt should replace spin_lock_irqsave() call there with what? local_irq_save()? and get rid of the warning?
Why do we care if interrupts are disabled with PREEMPT_RT here? printk() itself has a lot of issues with PREEMPT_RT that we are working on dealing with. Right now netconsole is actually at the end of that todo list. -- Steve