当前位置: 首页 > news >正文

trace-cmd记录线程被中断打断的时间

在linux下,当线程执行一个任务的时候,时间会发生抖动,引起抖动的原因可能有以下几种:

(1)线程主动让出了cpu,比如线程中出现了sleep,使用了互斥体,等待io等

(2)线程被动让出cpu,线程被更高优先级的线程抢占

(3)执行任务过程中有内存操作,内存操作肯呢个引起缺页中断,用户同样的内存操作,有缺页中断和无缺页中断,所消耗的时间是不一样的

(4)线程被中断打断

(5)以上情况都没有,但是同样优先级的线程比较多,也就是系统负载比较高,这个线程的运行需要排队等待

本文中记录通过ftrace来记录线程被中断打断的情况,通过工具trace-cmd来进行实验,trace-cmd是对ftrace功能的封装,比直接使用ftrace更方便:

测试代码:主线程绑定到核1上,然后是while(1)循环。

#define _GNU_SOURCE
#include <stdio.h>
#include <sched.h>
#include <pthread.h>
#include <unistd.h>int main() {// 创建 CPU 亲和性掩码cpu_set_t cpuset;CPU_ZERO(&cpuset);        // 初始化清空掩码CPU_SET(1, &cpuset);      // 设置核心 1(注意:核心编号从 0 开始)// 获取当前线程 ID(主线程)pthread_t current_thread = pthread_self();// 设置线程亲和性int result = pthread_setaffinity_np(current_thread, sizeof(cpu_set_t), &cpuset);if (result != 0) {perror("pthread_setaffinity_np failed");return 1;}while (1) {}return 0;
}

使用trace-cmd记录中断entry和exit事件,-P指定了线程号。

sudo trace-cmd record -e irq:irq_handler_entry   -e irq:irq_handler_exit -P 15706

使用trace-cmd report可以查看监听结果,结果如下,通过结果进一步分析,我们就可以确定线程被中断打断的时间。

 

http://www.xdnf.cn/news/1237069.html

相关文章:

  • Java 实现poi方式读取word文件内容
  • 编译旧版本的electron内核
  • VisualStudio的一些开发经验
  • 能表示旋转的矩阵是一个流形吗?
  • C++与Go的匿名函数编程区别对比
  • 吴恩达【prompt提示词工程】学习笔记
  • 曼哈顿距离与切比雪夫距离
  • 北京-4年功能测试2年空窗-报培训班学测开-第六十六天
  • Digit Queries
  • Arrays.asList() add方法报错java.lang.UnsupportedOperationException
  • 常见的深度学习模块/操作中的维度约定(系统性总结)
  • 接口测试用例的编写
  • Java 大视界 -- Java 大数据机器学习模型在金融市场情绪分析与投资决策辅助中的应用(379)
  • WSUS服务器数据库维护与性能优化技术白皮书
  • Nvidia Orin + RealSense D435i 与3D地图实现导航
  • ulimit参数使用详细总结
  • 第九章:了解特殊场景下的redis
  • 推荐系统学习笔记(八)其他召回通道
  • 机器人抓取流程介绍与实现——机器人抓取系统基础系列(七)
  • 《人形机器人的觉醒:技术革命与碳基未来》——类人关节设计:人工肌肉研发进展及一款超生物肌肉Hypermusclet的设计与制造
  • 最小半径覆盖问题【C++解法+二分+扫描线】
  • 从零开始学Express,理解服务器,路由于中间件
  • 批发订货系统:私有化部署与源代码支持越来越受市场追捧
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-56,(知识点:电源模块,DCDC电源,LDO电源,原理及其特点)
  • CVE-2025-5947 漏洞场景剖析
  • SpringBoot3.x入门到精通系列:2.5 整合 MyBatis 详解
  • 井盖识别数据集-2,700张图片 道路巡检 智能城市
  • [硬件电路-134]:模拟电路 - 运算放大器常见运算:两模拟信号相加、相减、单模拟信号的积分、微分...
  • 如新能源汽车渗透率模拟展开完整报告
  • 老电脑PE下无法读取硬盘的原因