
Linux 问题调试记录
文章平均质量分 88
52·Hz
清风自来
展开
-
【问题记录】进程调度导致 UDP 丢包问题分析
接收端处理时间过长(数据接收线程调度不及时)发送的数据包过大发送的数据包频率过快(网络拥塞)原创 2024-09-26 09:03:37 · 1237 阅读 · 1 评论 -
【问题记录】kmemleak 定位内存泄露
在某些复杂的项目中,如果存在内存泄露问题,而又无法通过常规的命令工具去定位问题,若通过代码去逐步排查也很难去排查出来,通过kmemleak工具就可以很好的帮我们定位出来内存泄露的具体代码处,进而缩小问题的范围,向上面的示例中,定位出来是 tty_open 函数内申请的内存,那对应的应该想到是不是在 tty_close 或者对应的退出函数中该段内存没有去释放掉,可以通过添加打印来逐步排查。原创 2024-02-18 17:00:30 · 1234 阅读 · 0 评论 -
【问题记录】如何打包两个dtb文件
系列文章目录【文件打包】如何打包两个dtb文件文章目录系列文章目录前言一、熟悉打包流程1. 查看编译内核信息,找到dtb信息2. 搜索关键字,找到打包脚本的代码3. 找到打包的命令4. 手动打包测试5. resource_tool 打包工具二、修改编译脚本和打包工具1. 修改顶层编译脚本2. 修改脚本mkimg3. 修改打包工具源码三、将不同的dtb文件传递给内核1. 获取HWID2. 区分dtb文件前言在项目开发过程中,可能会遇到多个项目使用同一个源码仓库,并且代码是高度复用的,如果在不同的项原创 2024-02-18 17:02:23 · 1473 阅读 · 0 评论 -
【问题记录】内存屏障及实例分析
编译器和处理器为了提高效率,可能对读和写重新排序,像上面的就可能会出现,在给a中赋值之前就在b中存放新值,这样就使问题变得复杂化了。如果是下面这种具有依赖关系的,就不会发生这种问题。为了确保顺序要求,内核提供了一些接口来保证指令的执行顺序,这些顺序的指令称为屏障。实际上内存屏障问题的出现在非多线程的项目中并不多见,但一但遇见了也是很难排查的一个问题,下面将分享一个本人遇到的一个问题。原创 2024-02-18 16:58:51 · 893 阅读 · 0 评论