如何找出Linux内核环形缓冲区的大小?

如何找出Linux内核环形缓冲区的大小?

对内核环形缓冲区的大小、它可以容纳多少信息以及什么数据类型非常感兴趣?

答案1

关于大小,它记录在内核的配置文件中。例如,在此处的 Amazon EC2 上,它是 256基布

# grep CONFIG_LOG_BUF_SHIFT /boot/config-`uname -r`
CONFIG_LOG_BUF_SHIFT=18
# perl -e 'printf "%d KiB\n",(1<<18)/1024'
256 KiB
#

引用于/内核/printk/printk.c

#define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)

更多信息请参见/kernel/trace/ring_buffer.c

请注意,如果您传递了内核启动参数“log_buf_len=N”(使用检查cat /proc/cmdline),那么覆盖配置文件中的值。

相关内容