public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* early_printk accessing __log_buf
@ 2007-07-18 21:56 Robin Getz
  2007-07-18 22:16 ` Andrew Morton
  0 siblings, 1 reply; 26+ messages in thread
From: Robin Getz @ 2007-07-18 21:56 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Quick question:

I am currently setting up an early_printk for the Blackfin - & I'm populating
an early fault interrupt handler at the same time. This allows things like
catching interrupts, or faults before the kernel has had a chance to
enable it's standard interrupt/fault handlers which happen midway 
through the boot process.

I would like to be able to print out the standard __log_buf from my early
fault handler - so everyone can see where things are when they died. In
most situations - printk has dumped some info to the log_buf, and it is
normally handy to see figure out what is going on.

However - __log_buf & associated pointers are declared as static in
kernel/printk.c - so they can't be accessed by external files.

I would normally use do_syslog([23],...) to read from the buffer - 
but these crashes happens before the kernel is fully initialized,
so spin_lock_irq, cond_resched, or wait_event_interruptible
will cause problems...

Although there are other solutions - I would prefer to just don't declare them
as static when EARLY_PRINTK is defined. This way if something bad happens - 
everyone can dump out the standard buffers to assist in debugging...

===================================================================
--- linux-2.6.x/kernel/printk.c (revision 3400)
+++ linux-2.6.x/kernel/printk.c (working copy)
@@ -117,7 +117,12 @@

 #ifdef CONFIG_PRINTK

+#ifdef CONFIG_EARLY_PRINTK
+char __log_buf[__LOG_BUF_LEN];
+#else
 static char __log_buf[__LOG_BUF_LEN];
+#endif
+
 static char *log_buf = __log_buf;
 static int log_buf_len = __LOG_BUF_LEN;
 static unsigned long logged_chars; /* Number of chars produced since last read+clear operation */

Thoughts?

-Robin

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

end of thread, other threads:[~2007-07-31 18:37 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-18 21:56 early_printk accessing __log_buf Robin Getz
2007-07-18 22:16 ` Andrew Morton
2007-07-18 23:39   ` Robin Getz
2007-07-18 23:53     ` Mike Frysinger
2007-07-19  3:37       ` Robin Getz
2007-07-19  3:47         ` Andrew Morton
2007-07-19  0:26     ` Andrew Morton
2007-07-19  2:26       ` Stephane Couture
2007-07-19  3:58       ` Robin Getz
2007-07-22 23:50         ` Mike Frysinger
2007-07-23  0:14           ` Paul Mundt
2007-07-23 18:19           ` Robin Getz
2007-07-23 20:15             ` Andrew Morton
2007-07-23 20:54               ` Mike Frysinger
2007-07-23 21:05                 ` Andrew Morton
2007-07-23 22:10                   ` Mike Frysinger
2007-07-23 22:15               ` Robin Getz
2007-07-23 22:34                 ` Andrew Morton
2007-07-24 17:50                   ` Robin Getz
2007-07-24 18:12                     ` Andrew Morton
2007-07-24 20:12                       ` Robin Getz
2007-07-24 21:30                         ` Andrew Morton
2007-07-31  7:47                           ` Mike Frysinger
2007-07-31  7:59                             ` Bryan Wu
2007-07-31  8:11                               ` Mike Frysinger
2007-07-31 18:36                             ` Andrew Morton

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