修改Linux内核的printk缓冲区(log缓冲区)大小
来源:互联网 发布:淘宝上买手表可靠吗 编辑:程序博客网 时间:2024/05/18 16:38
点击打开链接
我们可以用printk打印kernel的日志信息(即log信息),根据时间戳可以判断内核新打印的log会覆盖掉以前打印的log。原因是内核用环形缓冲区存放打印的log信息。那么如何增大缓冲区的大小呢?
我们看kernel/printk.c的代码
正是__LOG_BUF_LEN这个宏设置了环形缓冲区的大小,那么__LOG_BUF_LEN的大小是多少呢?是由1 << CONFIG_LOG_BUF_SHIFT(即2的CONFIG_LOG_BUF_SHIFT次幂)来决定的,那么CONFIG_LOG_BUF_SHIFT这个配置项又是在哪里定义呢?
在init/Kconfig里定义
可见CONFIG_LOG_BUF_SHIFT是一个内核配置项。它的大小可以配置为12~21,也就是说环形缓冲区的大小可以配置为4 KB - 2MB。内核(3.18内核)默认是17,即缓冲区的大小为2^17(131072)B。
所以要想增大或者减小环形缓冲区的大小,只需要在内核的配置文件里(对于arm架构为arch/arm/configs/xxx或者arch/arm64/configs/xxx)添加CONFIG_LOG_BUF_SHIFT=XX 即可修改环形缓冲区的大小。
0 0
- 修改Linux内核的printk缓冲区(log缓冲区)大小
- 修改Linux内核的printk缓冲区(log缓冲区)大小
- 修改Linux内核的printk缓冲区(log缓冲区)大小
- socket对应的内核缓冲区(发送,接收)的大小
- linux内核环形缓冲区
- linux设置套接字缓冲区的大小
- linux设置套接字缓冲区的大小
- linux设置套接字缓冲区的大小
- linux设置套接字缓冲区的大小
- 【Linux】tcp缓冲区大小的默认值、最大值
- 缓冲区大小的问题
- 获取缓冲区的大小
- 内核缓冲区的管理
- log缓冲区
- linux socket 缓冲区默认大小
- linux 默认socket 缓冲区大小
- linux socket 缓冲区默认大小
- linux socket 缓冲区默认大小
- ZJOI2017
- 超时时间的用途的理解和总结
- CDOJ(UESTC) 149 解救小Q(bfs中涉及传送带的问题)
- JavaWeb——response与request
- 代码设计程度的出发点是什么
- 修改Linux内核的printk缓冲区(log缓冲区)大小
- android 源码 高亮焦点选中
- 推拉的理解
- zencart如何添加新增页面?
- Jsoup使用选择器语法来查找元素
- TCP/IP 协议
- es6学习笔记(let和const)
- 常用关键字
- Qt小票打印之网口程序