#include <linux/module.h>
#include <linux/kernel.h>
int init_module(void) {
printk(KERN_EMERG "EMERG: Hello World.\n");
printk(KERN_ALERT "ALERT: Hello World.\n");
printk(KERN_CRIT "CRIT: Hello World.\n");
printk(KERN_WARNING "WARNING: Hello World.\n");
printk(KERN_NOTICE "NOTICE: Hello World.\n");
printk(KERN_INFO "INFO: Hello World.\n");
printk(KERN_DEBUG "DEBUG: Hello World.\n");
return 0;
}
void cleanup_module(void) {
printk("Bye :)");
}
and you see, that dmesg print everything (but /var/log/messages contained only WARNING, NOTICE and INFO levels messages, for console_loglevel = 3)
2011/3/5 Siddu <siddu.sjce@xxxxxxxxx>
Hi all,
Hi all,I am little stuck understanding this piece of code below and the way its been working
Question: since KERN_INFO = 6 # which is msg_log_level
and as per codemsg_log_level < console_loglevelthis line of printk is not supposed to show up in the dmesg log ? but it is showing up . Why
cat /proc/sys/kernel/printk
4 4 1 7
console_loglevel = 4
printk(KERN_INFO "Brought up %ld CPUs\n", (long)num_online_cpus());
static void _call_console_drivers(unsigned start,
unsigned end, int msg_log_level)
{
if ((msg_log_level < console_loglevel || ignore_loglevel) &&
console_drivers && start != end) {
if ((start & LOG_BUF_MASK) > (end & LOG_BUF_MASK)) {
/* wrapped write */
__call_console_drivers(start & LOG_BUF_MASK,
log_buf_len);
__call_console_drivers(0, end & LOG_BUF_MASK);
} else {
__call_console_drivers(start, end);
}
}
}Thanks for any inputs !
--
Regards,
~Sid~
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies