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