做中文的云图网站,建网站做哪方面,注册公司最少要多少钱,简介网站建设流程文章目录 1.内核函数调用堆栈#xff1a;4个函数2.printk#xff1a;cat /proc/cmdline查看consolettyS03.动态打印#xff1a;printk是全局的且只能设打印等级#xff0c;动态打印可控制选择模块的打印#xff0c;在内核配置打开CONFIG_DYNAMIC_DEBUG4.topperf… 文章目录 1.内核函数调用堆栈4个函数2.printkcat /proc/cmdline查看consolettyS03.动态打印printk是全局的且只能设打印等级动态打印可控制选择模块的打印在内核配置打开CONFIG_DYNAMIC_DEBUG4.topperf4.ftrace系统层面功能需要打开image大小会变大5.proc文件系统/proc/cpuinfomeminfonet6.sysfs文件系统设备树里所有信息在/sys/devices/platform里class是不同驱动但相同行为事件如input汇总7.内核调试手段debugfs.h中api建立目录/sys/kernel/debug8.性能优化裸磁盘无法使用一般都刷文件系统10.Valgrind内存泄漏排查案例11.cpu瓶颈12.主频设置13.驱动稳定性 1.内核函数调用堆栈4个函数 2.printkcat /proc/cmdline查看consolettyS0 3.动态打印printk是全局的且只能设打印等级动态打印可控制选择模块的打印在内核配置打开CONFIG_DYNAMIC_DEBUG
printk会关中断影响性能如果在usb的read/write里printk那么usb就没法直接用了。我想加很多调试信息但是不想影响linux性能所以用动态打印调试时才打开control节点默认不输出如下操作才输出p是转为printk相当于下面的define dev_dbg …。
4.topperf
如下是top命令用户层us内核sy空闲id硬中断hi软中断si如进行网络数据大量收发si会升高因为有tx软中断和rx软中断处理才能发数据 网络数据收发绕过cpu用硬中断。
4.ftrace系统层面功能需要打开image大小会变大 如下文件包含可追踪的所有场景。 如下案例mpstatperf看函数执行次数ftrace看函数执行时间。 如下sys_sync是系统调用。 如下可以打印出时间。
5.proc文件系统/proc/cpuinfomeminfonet 6.sysfs文件系统设备树里所有信息在/sys/devices/platform里class是不同驱动但相同行为事件如input汇总 7.内核调试手段debugfs.h中api建立目录/sys/kernel/debug 8.性能优化裸磁盘无法使用一般都刷文件系统
驱动加上要考虑磁盘io内存占用cpu使用情况。 如下网络调试
10.Valgrind内存泄漏排查案例 如下malloc加个死循环就是内存泄漏。 dmesg会显示不全因为环形buffer会覆盖。
11.cpu瓶颈 -p pid
12.主频设置 13.驱动稳定性
希望arg有多大 likely一般用在if判断里cpu会把当前指令后面指令预取出来等到执行时就去执行效率提高但是也要判断后面那条指令大概率执不执行执行的话取出来不执行则跳过。