【driver5】调用堆栈函数,printk,动态打印,ftrace,proc,sysfs

文章目录

  • 1.内核函数调用堆栈:4个函数
  • 2.printk:cat /proc/cmdline查看console=ttyS0
  • 3.动态打印:printk是全局的且只能设打印等级,动态打印可控制选择模块的打印,在内核配置打开CONFIG_DYNAMIC_DEBUG
  • 4.ftrace:系统层面,功能需要打开,image大小会变大
  • 5.proc文件系统:/proc/cpuinfo,meminfo,net
  • 6.sysfs文件系统:设备树里所有信息在/sys/devices/platform里,class是不同驱动但相同行为事件如input汇总
  • 7.内核调试手段:debugfs.h中api建立目录/sys/kernel/debug
  • 8.性能优化:裸磁盘无法使用,一般都刷文件系统
  • 10.Valgrind内存泄漏排查案例:
  • 11.cpu瓶颈:
  • 12.主频设置
  • 13.驱动稳定性


1.内核函数调用堆栈:4个函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.printk:cat /proc/cmdline查看console=ttyS0

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.动态打印:printk是全局的且只能设打印等级,动态打印可控制选择模块的打印,在内核配置打开CONFIG_DYNAMIC_DEBUG

printk会关中断影响性能,如果在usb的read/write里printk,那么usb就没法直接用了。我想加很多调试信息,但是不想影响linux性能,所以用动态打印,调试时才打开,control节点默认不输出,如下操作才输出,+p是转为printk。
在这里插入图片描述
在这里插入图片描述

4.ftrace:系统层面,功能需要打开,image大小会变大

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如下文件包含可追踪的所有场景。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如下案例:mpstat,perf。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如下sys_sync是系统调用。
在这里插入图片描述
如下可以打印出时间。
在这里插入图片描述
在这里插入图片描述

5.proc文件系统:/proc/cpuinfo,meminfo,net

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.sysfs文件系统:设备树里所有信息在/sys/devices/platform里,class是不同驱动但相同行为事件如input汇总

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.内核调试手段:debugfs.h中api建立目录/sys/kernel/debug

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.性能优化:裸磁盘无法使用,一般都刷文件系统

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如下网络调试:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.Valgrind内存泄漏排查案例:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如下malloc加个死循环就是内存泄漏。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
dmesg会显示不全,因为环形buffer会覆盖。在这里插入图片描述

11.cpu瓶颈:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
-p pid
在这里插入图片描述

12.主频设置

在这里插入图片描述
在这里插入图片描述

13.驱动稳定性

希望arg有多大
在这里插入图片描述
likely一般用在if判断里,cpu会把当前指令后面指令预取出来,等到执行时就去执行,效率提高,但是也要判断后面那条指令大概率执不执行,执行的话取出来,不执行则跳过。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/670346.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【统计推断】-01 抽样原理之(三)

文章目录 一、说明二、抽样分布三 均值抽样分布3.1 有限母体无放回抽样3.2 有限母体有放回抽样3.3 无限母体 四、比例抽样分布五、和差抽样分布 一、说明 上文中叙述母体和抽样的设计;以及抽样分布的概念,本篇将这种关系定量化,专门针对抽样的…

Day05-JavaWeb开发-请求响应(postman工具/参数/案例)分层解耦(三层架构/IOC-DI引入)

1. 请求响应 1.1 概述 1.2 请求-postman工具 1.3 请求-简单参数&实体参数 1.3.1 简单参数 1.3.2 实体参数 1.4 请求-数组集合参数 1.5 请求-日期参数&json参数 1.6 请求-路径参数 1.7 响应-ResponseBody 1.8 响应-案例 2. 分层解耦 2.1 三层架构 2.2 分层解耦(IOC-D…

QLora 里的4-bit NormalFloat Quantization中的分位数量化

目录 正态分布的分位数函数详解 1. 正态分布简介 2. 分位数函数定义 3. 正态分布的分位数函数计算 4-bit NormalFloat Quantization 4-bit NormalFloat Quantization详解 1. 4-bit NormalFloat Quantization的定义和应用 2. 4-bit NormalFloat Quantization的工作原理 …

Linux字符设备驱动(一) - 框架

字符设备是Linux三大设备之一(另外两种是块设备,网络设备),字符设备就是字节流形式通讯的I/O设备,绝大部分设备都是字符设备,常见的字符设备包括鼠标、键盘、显示器、串口等等,当我们执行ls -l /dev的时候,就能看到大量…

信号与进程(1):进程创建与进程等待

进程创建 参考博客 fork与vfork的区别 fork()与vfork()函数 fork :子进程拷贝父进程的数据段、代码段等资源 vfork :子进程与父进程共享数据段、代码段等资源fork :父子进程的执行次序不确定 vfork :保证子进程先运行&#xff0…

css实现上下左右对勾选中状态角标

🍥左上角 🍥右上角 🍥左下角 🍥右下角: 🍥左上角: .blueBackground {position: relative;border: 1px solid #91c7f3;background: #F0F8FF !important;&:after {content: "";position: absolute;top:…

今天发现个有意思的问题:java基础篇章网络编程的报错问题,顺便看一下各个GPT的实力

问题: 一个java socket网络编程的引发的异常,具体代码Client.java、Server.java,如下 Client.java package Test2;import java.io.*; import java.net.Socket;public class Client {public static void main(String[] args) throws IOExce…

✌粤嵌—2024/5/6—盛最多水的容器

代码实现&#xff1a; 方法一&#xff1a;暴力解法 #define min(a, b) ((a) > (b) ? (b) : (a)) #define max(a, b) ((a) > (b) ? (a) : (b))int maxArea(int *height, int heightSize) {int ans 0;for (int i 0; i < heightSize; i) {for (int j i; j < heig…

武汉星起航:跨境电商行业领航者,一站式孵化服务引领全球趋势

在全球化日益深入的今天&#xff0c;跨境电商作为连接各国市场的桥梁&#xff0c;其重要性日益凸显。在这一潮流中&#xff0c;武汉星起航电子商务有限公司以其前瞻性的战略眼光和丰富的运营经验&#xff0c;迅速崛起为跨境电商行业的领军者。公司不仅自营亚马逊跨境电商业务&a…

一、Redis五种常用数据类型

Redis优势&#xff1a; 1、性能高—基于内存实现数据的存储 2、丰富的数据类型 5种常用&#xff0c;3种高级 3、原子—redis的所有单个操作都是原子性&#xff0c;即要么成功&#xff0c;要么失败。其多个操作也支持采用事务的方式实现原子性。 Redis特点&#xff1a; 1、支持…

核心代码分析

核心代码分析 下面的代码主要有两个作用 判断是否为扫描器或者密码爆破工具&#xff0c;进行交互握手&#xff0c;效果是扫描器直接爆3306弱口令。如果是直接连接&#xff0c;去读取设定好的文件&#xff0c;并写入本地保存。 这些函数用于从MySQL数据库中获取指定文件的内容…

3D+仿真分析:高效实现海底石油管道系统设计

Bentley AutoPIPE 助力节省寻找更佳管道路线所需的时间和成本 评估管道完整性以提高石油产量 从墨西哥湾浅水区开采石油通常需要铺设新的海底管道&#xff0c;从而在高压和高温条件下高效、安全地输送原油。 Grupo EspecializadoenObras Marinas (GEOMSA) 是墨西哥湾管道—土体…