1. 程式人生 > >printk()函數學習筆記

printk()函數學習筆記

spin lock flag ssa 啟動 模塊 fun glob .net

https://www.cnblogs.com/sky-heaven/p/6742062.html
韋東山老師的printk講解:https://blog.csdn.net/W1107101310/article/details/80526039

1.開發板內核啟動參數:
bootargs = "console=ttySC0,115200n8 rw root=/dev/mmcblk0p3 rootwait ignore_loglevel vt.global_cursor_default=0"

ignore_loglevel:printk.c中即作為啟動參數也作為模塊參數,指定了它:ignore loglevel setting (prints all kernel messages to the console)"
只有suppress_message_printing()使用了它,拿它做判斷

2.4.14.35內核printk()的調用路徑:
printk
vprintk_fun
vprintk_emit 調用local_irq_save(flags)並獲取spin_lock!
已經看到了這個函數的logbuf_unlock_irqrestore()位置了
回去看: https://blog.csdn.net/W1107101310/article/details/80526039

G6S上配置的是128K的log_buf
#define CONFIG_LOG_BUF_SHIFT 17 /*1<<17=128K*/
static char __log_buf[__LOG_BUF_LEN] __aligned(LOG_ALIGN); /*128k,以struct printk_log大小對其*/

printk()函數學習筆記