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