修改Linux内核的printk缓冲区(log缓冲区)大小
点击打开链接
- <span style="font-family: Arial, Helvetica, sans-serif;">/* record buffer */</span>
- #define LOG_ALIGN __alignof__(struct printk_log)
- #define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)
- static char __log_buf[__LOG_BUF_LEN] __aligned(LOG_ALIGN);
- static char *log_buf = __log_buf;
- static u32 log_buf_len = __LOG_BUF_LEN;
正是__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
- int "Kernel log buffer size (16 => 64KB, 17 => 128KB)"
- range 12 21
- default 17
- depends on PRINTK
- help
- Select the minimal kernel log buffer size as a power of 2.
- The final size is affected by LOG_CPU_MAX_BUF_SHIFT config
- parameter, see below. Any higher size also might be forced
- by "log_buf_len" boot parameter.
- Examples:
- 17 => 128 KB
- 16 => 64 KB
- 15 => 32 KB
- 14 => 16 KB
- 13 => 8 KB
- 12 => 4 KB
可见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 即可修改环形缓冲区的大小。
修改Linux内核的printk缓冲区(log缓冲区)大小相关推荐
- Linux内核之 printk 打印
Linux内核之 printk 打印 前言 一.printk 介绍 1. printk 消息级别 2.内核 printk 文件 二.调整打印级别 1.在 menuconfig 中修改 2.在系统中修改 ...
- 修改Linux内核启动图片
原文: http://www.linuxde.net/2013/06/13936.html 保存一下,去试试. 本文讲的是修改Linux内核启动的图片,而不是uboot,这两者是不一样的哦. uboo ...
- 修改Linux内核的启动Logo和禁用启动光标
Linux内核下使用的图片文件类型是pnm和PPm格式的,所以在开始介绍修改linux内核启动LOGO之前, 1,先需要介绍一下怎么样设计自己开始logo的ppm图片,首先选择一张png格式的图片 使 ...
- Linux内核启动去掉企鹅,修改linux内核kernel开机logo(小企鹅)
修改linux内核kernel的开机图片(原为小企鹅图片). 转载请注明出处:http://blog.csdn.net/wang_zheng_kai 导航制导与控制实验室 2014年12月10日 本文 ...
- linux内核并发教程,修改Linux内核参数提高Nginx服务器并发性能
当linux下Nginx达到并发数很高,TCP TIME_WAIT套接字数量经常达到两.三万,这样服务器很容易被拖死.事实上,我们可以简单的通过修改Linux内核参数,可以减少Nginx服务器 的TI ...
- 修改linux内核达到隐藏进程目的(2.6.28)
修改linux内核达到隐藏进程目的(2.6.28) 要求: 高级操作系统与分布式系统作业 ps和top命令列出了unix中当前所有进程的相关信息,作业要求在linux中增加两个系统调用,功能如下: h ...
- 修改Linux内核参数提高服务器并发能力
1.参数设置 查看相关的参数 sysctl -a|grep tcp_keepalive net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive ...
- 修改linux内核启动动画,Android 开机界面及Linux内核启动界面的修改(tiny6410)
第一开机界面替换,即内核bootloader启动小企鹅界面更换 1.首先找一个自定义120*120的png图像,这里名称linux.png,但是后面的ppm名称必须是图中所示 在linux下执行下面代 ...
- ARMv8架构下修改Linux内核并打开kvm硬件虚拟化支持(平台Firefly-rk3568)
前言 在做的一个项目需要使用ARMv8的硬件虚拟化支持,而购买的Firefly-3568默认的操作系统内核没有打开kvm虚拟化支持,所以尝试重新编译了一下内核开启虚拟化支持,并将遇到的问题和一些解决方 ...
最新文章
- Pycharm问题归纳
- 原来程序员在某个圈子还是蛮吃香的嘛~
- 强烈推荐Spring Web Flow权威指南
- memcached完全剖析–1. memcached的基础
- bootstrap mysql分页_bootstrap分页
- 基于Wemos D1的感应开盖垃圾桶
- openssh-在win7上的搭建
- JAVA minaio模型_分布式系统之Java IO模型
- fastapi学习(二):路径参数获取与GET、POST参数获取
- 开会坐在后面,意思是不感兴趣
- LINUX备份,使用再生龙Clonezilla成功,remastersys、systemback都失败
- FPN特征金字塔网络
- STM32实现Airplay音乐播放器
- 内外盘期货分仓系统,仿真模拟考核系统
- VBA字典数组转置维度变化
- 颜文字风波+选颜文字游戏
- 常见电线电缆电阻的检测方法盘点
- 网站流量PV是什么意思? UV是什么意思?
- 12306 抢票软件已被限制
- python毕业设计题目推荐汽车销售系统
热门文章
- html如何创建学生信息表,创建学生对象并且能访问网页
- navicat 批量修改列数据
- 028_SpringBoot整合Redis
- python 结构体数组 定义_一篇文章弄懂Python中所有数组数据类型
- 性能分析工具 Android TraceView
- mysql 1418 错误原因及解决
- oracle 按日输出 取整数,Oracle按日周月分組統計,及next_day()函數詳解
- 保存数组类型数据_JS基本数据类型和引用数据类型的区别及深浅拷贝
- cmake交叉编译android,CMake Android 交叉编译
- 大数据:Hive和Hbase的区别于优势