Narrowed it down - RE: Linux 2.6-10.rc3 8xx: Only 3 characters are printed well in __in it start_kernel() upon kernel booting

Povolotsky, Alexander Alexander.Povolotsky at marconi.com
Thu Jan 20 11:22:00 EST 2005


Here is my software "debugging tool", which allowed me to disable writing
throgh printk()
to the log buffer - until I want it to be enabled
by using this "tool" I've performed some investigation
(however inconclusive - so opinions and suggestions are welcomed).


/* ... linux/init/main.c ...*/
...
+ unsigned long disable_printk = 1;
  extern char *linux_banner;
...
 __in it start_kernel(...) 
...
disable_printk = 0;
printk("Alex\n");
vfs_caches_init_early();
mem_init();
...
*************************************************

/* ... kernel/printk.c ... */
...
  DECLARE_WAIT_QUEUE_HEAD(log_wait);

+ extern unsigned long disable_printk ;
...
asmlinkage int printk(const char *fmt, ...)
{
        va_list args;
        int r;
+       if (disable_printk) return 0;
        va_start(args, fmt);
...

**************************************************
I was "sliding down" those two statements:

disable_printk = 0;
printk("Alex\n");

down to cosole_init() and further down beyond it,
while I could see "Ale" in - I was moving it further down ...

To double check, couple times I would do just 

disable_printk = 0;
without
printk("Alex\n");

then I have seen once:
"Con"

and moving further down:
"Den"

which I think is from: "Dentry cache hash table entries ..."

But I can not see my output when do it 
just before
 vfs_caches_init_early();

but it is very close to

mem_init();

so I am not sure, which is the culprit ...

Should I put some delay between those two (what is the best way to do it ?)

Thanks,
Best regards,
Alex








More information about the Linuxppc-embedded mailing list