Thread (13 messages) 13 messages, 5 authors, 2021-08-06

Re: [PREEMPT_RT][PATCH] printk: Enhance the condition check of msleep in pr_flush()

flat view

From: John Ogness <john.ogness@linutronix.de>
Date: 2021-07-30 14:46:53
Also in: lkml

On 2021-07-30, Sebastian Andrzej Siewior [off-list ref] wrote:
On 2021-07-19 17:01:51 [+0206], John Ogness wrote:
quoted
On 2021-07-19, chao.qin@intel.com wrote:
quoted
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -3620,7 +3620,8 @@ bool pr_flush(int timeout_ms, bool reset_on_progress)
 	u64 diff;
 	u64 seq;
 
-	may_sleep = (preemptible() && !in_softirq());
+	may_sleep = (preemptible() && !in_softirq()
+			&& (system_state >= SYSTEM_RUNNING));
I don't have more context but scheduling should work starting with
SYSTEM_SCHEDULING.
I also thought this, but a quick test shows that is not the case. For
example, init/main.c:kernel_init() is called in preemptible context, but
msleep() will hang if called at the beginning of that function.

John Ogness
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help