public inbox for linux-rt-users@vger.kernel.org
 help / color / mirror / Atom feed
* patch to fix early printks with PREMPT_RT_FULL
@ 2012-05-05  1:07 Venkat Subbiah
  2012-05-17 21:33 ` Venkat Subbiah
  0 siblings, 1 reply; 5+ messages in thread
From: Venkat Subbiah @ 2012-05-05  1:07 UTC (permalink / raw)
  To: RT

[-- Attachment #1: Type: text/plain, Size: 403 bytes --]

Hello,

With PREMPT_RT_FULL I notice couple of issues when early printk is turned on

1)  printks show up only after the full console is enabled
2)  There are double prints for each of the prinkts before the full 
console was enabled.

The attached patch seem to fix the issue, but I am not sure whether this 
is completely with
the lock being acquired in console_trylock_for_printk().

Thanks,
Venkat


[-- Attachment #2: 0001-printk-Allow-early-console-prints-with-PREEMPT_RT_FU.patch --]
[-- Type: text/x-patch, Size: 1465 bytes --]

>From 876c0653e4482357823d1d36858aed7b5cd8d1fa Mon Sep 17 00:00:00 2001
From: Venkat Subbiah <venkat.subbiah@cavium.com>
Date: Fri, 4 May 2012 17:53:16 -0700
Subject: [PATCH] printk: Allow early console prints with PREEMPT_RT_FULL

Signed-off-by: Venkat Subbiah <venkat.subbiah@cavium.com>
---
 kernel/printk.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/kernel/printk.c b/kernel/printk.c
index d3f22ec..d2dda2f 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -832,6 +832,8 @@ static inline int can_use_console(unsigned int cpu)
 	return cpu_online(cpu) || have_callable_console();
 }
 
+static int boot_console_active = 1;
+
 /*
  * Try to get console ownership to actually show the kernel
  * messages from a 'printk'. Return true (and with the
@@ -848,7 +850,7 @@ static int console_trylock_for_printk(unsigned int cpu, unsigned long flags)
 	int retval = 0, wake = 0;
 #ifdef CONFIG_PREEMPT_RT_FULL
 	int lock = (!early_boot_irqs_disabled && !irqs_disabled_flags(flags) &&
-		!preempt_count()) || sysrq_in_progress;
+		!preempt_count()) || sysrq_in_progress || boot_console_active;
 #else
 	int lock = 1;
 #endif
@@ -1653,6 +1655,7 @@ void register_console(struct console *newcon)
 		 */
 		printk(KERN_INFO "console [%s%d] enabled, bootconsole disabled\n",
 			newcon->name, newcon->index);
+		boot_console_active = 0;
 		for_each_console(bcon)
 			if (bcon->flags & CON_BOOT)
 				unregister_console(bcon);
-- 
1.7.7.6


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-05-21 20:12 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-05  1:07 patch to fix early printks with PREMPT_RT_FULL Venkat Subbiah
2012-05-17 21:33 ` Venkat Subbiah
2012-05-18  1:30   ` Frank Rowand
2012-05-21 19:54     ` Venkat Subbiah
2012-05-21 20:12     ` Venkat Subbiah

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox