[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:19:26 PDT 2019
Please merge to v5.0/standard/preempt-rt/base and
v5.0/standard/preempt-rt/intel-x86
--Hongzhi
On 4/23/19 11:14 AM, Hongzhi.Song wrote:
> 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;
More information about the linux-yocto
mailing list