[linux-yocto] [linux-yocto-rt][PATCH] printk: revert part of code of printk emergency mechanism

Hongzhi.Song hongzhi.song at windriver.com
Mon Apr 22 20:14:52 PDT 2019


Two commits from rt-kernel cause the following disorder log at the
early stage of boot with qemux86-64. Maybe it has other disorder logs
which I omit.

Commits:
7128a815: printk: introduce emergency messages
b9d460e4: serial: 8250: implement write_atomic

[    0.401166] 000: 6200.04 BogoMIPS (lpj=3100023)
[    0.877953] 000: Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz
[    0.877953] 000:  (family: 0x6, model: 0xf
[    0.877953] 000: , stepping: 0xb)
[    1.255009] 000:  5
[    1.255167] 000:  *10
[    1.255295] 000:  11
[    1.255406] 000: )

Obviously, the printk emergency mechanism doesn't work as expected.
Removing partial code of printk emergency mechanism can
fix the issue temporarily.

Signed-off-by: Hongzhi.Song <hongzhi.song at windriver.com>
---
 kernel/printk/printk.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 997d07b..99d4a94 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -1726,6 +1726,7 @@ static void call_console_drivers(u64 seq, const char *ext_text, size_t ext_len,
 			con->wrote_history = 1;
 			con->printk_seq = seq - 1;
 		}
+#if 0
 		if (con->write_atomic && level < emergency_console_loglevel &&
 		    facility == 0) {
 			/* skip emergency messages, already printed */
@@ -1733,6 +1734,7 @@ static void call_console_drivers(u64 seq, const char *ext_text, size_t ext_len,
 				con->printk_seq = seq;
 			continue;
 		}
+#endif
 		if (con->flags & CON_BOOT && facility == 0) {
 			/* skip emergency messages, already printed */
 			if (con->printk_seq < seq)
@@ -3134,10 +3136,12 @@ static void call_emergency_console_drivers(int level, const char *text,
 	for_each_console(con) {
 		if (!(con->flags & CON_ENABLED))
 			continue;
+#if 0
 		if (con->write_atomic && level < emergency_console_loglevel) {
 			con->write_atomic(con, text, text_len);
 			continue;
 		}
+#endif
 		if (con->write && (con->flags & CON_BOOT)) {
 			con->write(con, text, text_len);
 			continue;
-- 
2.8.1



More information about the linux-yocto mailing list