侵权投诉

深入探究Linux系统噪音统计(osnoise tracer)

Linux阅码场 2021-09-18 10:53 次阅读

Linux系统中作为一个普通线程是非常苦逼的。不仅NMI 、硬中断、软中断可以打断它,甚至其它普通线程也可以来打断干扰到它的运行。

如果没有这些打断事件,一个普通线程执行while循环,可以high过天际。这些打断事件对一个普通线程来说,就相当于噪音一样的存在。

从Linux 5.14-rc1开始引入了一个新的tracer---(osnoise tracer)。就是从一个线程thread的角度把这些噪音全部详细统计出来。

2a6b43b0-156e-11ec-8fb8-12bb97331649.png

上图中 在1秒内普通线程(pid=98) 受到的各个干扰事件的次数和cpu available百分比等都可以显示出来。

统计到这个程度,感觉还是不够详细。 可以打开osnoise对应的trace event.

2a7b91e8-156e-11ec-8fb8-12bb97331649.png

上面的interference 5说明在一个采样周期内被打断了5次(包括4次中断和一次a.out线程事件产生的噪音),上面的每一次打断都有事件名称和对应的时间统计:

1232+1222+1192+1262+3994882=4000242-452 (~4000242)

计时间约等于4000242ns 因为包含了检查代码的时间时间。

代码实现:

在以上每个打断事件处理函数中都插上trace event的钩子函数 来统计事件的执行时间,然后在每个cpu上运行一个内核线程进行周期性统计。

这个强大的osnoise tracer使用到的技术仅仅是用到了tracer event提供的基础设施。

我在阅码场发布过一个视频课程,对linux系统中各个tracer的使用和代码实现都有非常详细的讲解:

编辑:jq

原文标题:Linux系统噪音统计(osnoise tracer)

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

华为开发者大会2021HDC——如何在NPU上进行端侧推理

2021年10月22日~24日,华为将在中国松山湖举行2021华为开发者大会,聚焦鸿蒙系统、智能家居....
的头像 汽车玩家 发表于 10-23 15:34 149次 阅读
华为开发者大会2021HDC——如何在NPU上进行端侧推理

华为开发者HarmonyOS零基础入门:完善功能逻辑

华为开发者HarmonyOS零基础入门:逻辑代码相应调试,导入系统能力包,引用UI资源,调用系统能力....
的头像 lhl545545 发表于 10-23 10:38 140次 阅读
华为开发者HarmonyOS零基础入门:完善功能逻辑

HDC华为开发者大会2021:harmony OS提供全力技术支持

HDC华为开发者大会2021:鸿蒙零基础入门满足harmonyOS开发者各类学习需求,逐步丰富的示例....
的头像 lhl545545 发表于 10-23 09:35 137次 阅读
HDC华为开发者大会2021:harmony OS提供全力技术支持

STM32 Linux开发板推荐 ,入门进阶必备!

推荐一款适合入门进阶学习的Linux开发板:华清远见FS-MP1A开发板(STM32MP157开发板....
发表于 10-22 18:51 4次 阅读

【视频】华清远见stm32mp157开发入门指导(7讲)

关于FS-MP1A开发板(stm32mp157): FS-MP1A开发板是华清远见最新自主研发的一....
发表于 10-22 18:50 1次 阅读

一图了解华清远见STM32MP157开发板学习资源优势

一图了解华清远见STM32MP157开发板学习资源优势(教程+视频+项目): 资料说明及更新情....
发表于 10-22 18:49 3次 阅读

微软官方开发的VS Code扩展介绍

【导语】:CodeTour(代码之旅)是微软官方开发的 VS Code 扩展,允许记录和回放代码的演....
的头像 数据分析与开发 发表于 10-22 17:13 221次 阅读

2021华为开发者大会:鸿蒙智联设备开发效率倍增

2021华为开发者大会:分布式应用服务开发环境,以用户为中心的自然智慧交互,突破跨端开发调试困难,丰....
的头像 lhl545545 发表于 10-22 15:57 301次 阅读
2021华为开发者大会:鸿蒙智联设备开发效率倍增

linux spi应用层驱动以及回环测试代码

linux spi应用层驱动以及回环测试代码
发表于 10-22 15:47 9次 阅读

华为开发者大会2021概念股

华为2021开发者大会举行在即。根据华为官网消息,华为2021开发者大会将于10月22日在东莞松山湖....
的头像 ss 发表于 10-22 11:56 376次 阅读

给树莓派添加一个开、关机按键(原创)

给树莓派添加一个开、关机按键(原创)声明关键词问题起因解决方案一、实现方式二、实现原理三、改进方案声....
发表于 10-22 10:06 12次 阅读
给树莓派添加一个开、关机按键(原创)

分享!基于Zynq-7010/7020的多路千兆网口实现方案

前 言:本文基于以太网接口在工业场合的大量使用,特别是工业控制、仪器仪表等领域,结合Xilinx Zynq-7000所具备的丰富设计资源...
发表于 10-22 09:43 101次 阅读

基于ARM Linux的WiFi智能终端门禁系统

引言 随着社会经济的快速发展,人们对室内人身财产安全要求越来越高,门禁系统作为智能建筑安防自动化体系中必不可少的一部分[1...
发表于 10-22 09:27 505次 阅读

NVIDIA加速虚拟人项目渲染与推理效率

腾讯AI LAB致力于打造产学研用一体的 AI 生态,主要的研究方向包括计算机视觉、语音识别、自然语....
的头像 NVIDIA英伟达企业解决方案 发表于 10-22 09:12 149次 阅读

该如何去使用trace32呢

怎样去安装trace32? trace32与单片机是怎样连接的?有哪几种方法? ...
发表于 10-22 09:03 0次 阅读

一文读懂什么是Linux驱动呢

什么是Linux驱动? Linux驱动程序需要掌握哪些内容呢? ARM处理器体系架构是由哪些部分组成的? ...
发表于 10-22 08:43 0次 阅读

STM32F103C8T6的串口配置步骤有哪些

STM32F103C8T6有哪几个串口? STM32F103C8T6的串口配置步骤有哪些?怎样去编写代码呢? ...
发表于 10-22 06:35 0次 阅读

华为开发者大会受益公司有哪些

华为2021开发者大会举行在即,根据华为官网消息,华为2021开发者大会将于10月22日在东莞松山湖....
的头像 ss 发表于 10-21 17:51 626次 阅读

香橙派全志芯片开发板下载交叉编译工具链说明

香橙派开发板以处理器分类,包含全志H2、全志H3、全志H5、全志H6等系列,下文以全志H3芯片的开发板为例,对交叉编译工具链的...
发表于 10-21 17:35 101次 阅读
香橙派全志芯片开发板下载交叉编译工具链说明

稳中求进实力强横的欧美系MOSFET有哪些

电子发烧友网报道(文/李宁远)时至今日,大至功率变换器,小至内存、CPU等各类电子设备核心元件,无不....
的头像 电子发烧友网 发表于 10-21 15:30 166次 阅读

C语言堆栈程序内存的分配

    程序内存的分配       一个由C/C++编译的程序占用的内存分为以下几个部分: 栈区(s....
的头像 嵌入式ARM 发表于 10-21 14:51 86次 阅读

ML规模复杂的相关基础架构

  Waze 是世界上最大的基于社区的交通和导航应用。该应用借助实时数据来帮助用户避开路上的障碍,享....
的头像 TensorFlow 发表于 10-21 14:07 142次 阅读

嵌入式linux开发视频下载

嵌入式Linux视频教程:ed2k://|file|Tiny6410%E5%9B%BD%E5%B5%....
发表于 10-21 13:21 7次 阅读
嵌入式linux开发视频下载

嵌入式linux开发视频下载

嵌入式Linux视频教程:ed2k://|file|Tiny6410%E5%9B%BD%E5%B5%....
发表于 10-21 13:21 7次 阅读
嵌入式linux开发视频下载

嵌入式软件未来发展趋势

虽说嵌入式未来发展一片大好,但也会有一些人很想多了解一下嵌入式,毕竟之后要学习嵌入式的话,也要多了解....
发表于 10-21 13:06 15次 阅读
嵌入式软件未来发展趋势

【嵌入式实验】《嵌入式开发工具使用》

嵌入式开发工具使用一.实验目的二.实验内容三.预备知识四.实验设备及工具(包括软件调试工具)五.实验....
发表于 10-21 13:06 8次 阅读
【嵌入式实验】《嵌入式开发工具使用》

嵌入式Linux NFS

文章目录前言服务器配置嵌入式设备挂载微信公众号前言网络文件系统(英语:Network File Sy....
发表于 10-21 12:51 5次 阅读
嵌入式Linux NFS

小白找工作:嵌入式工程师(从单片机到嵌入式,我该投哪个岗位)

小白找工作:嵌入式工程师前言从单片机到嵌入式,我该投哪个岗位前言好久没有写博客了,这段时间主要是去做....
发表于 10-21 12:51 19次 阅读
小白找工作:嵌入式工程师(从单片机到嵌入式,我该投哪个岗位)

嵌入式软件工程师成长方向的思考

最近有点空闲,总结下嵌入式工程师所需要掌握的技能,及成长方向。主体知识:C语言、数据结构 + 算法、....
发表于 10-21 12:36 8次 阅读
嵌入式软件工程师成长方向的思考

嵌入式linux根文件系统损坏恢复方法

昨晚在对开发板的文件进行复制操作时遇到卡死,强制重启之后发现进不了命令行模式,输入回车键一直提示:c....
发表于 10-21 12:36 6次 阅读
嵌入式linux根文件系统损坏恢复方法

嵌入式linux的开发流程以及linux应用层内容

嵌入式linux开发流程:1.搭建前期的开发环境,例如搭建linux主机环境,交叉编译器的安装,还有....
发表于 10-21 12:36 7次 阅读
嵌入式linux的开发流程以及linux应用层内容

树莓派1:嵌入式开发概述

嵌入式开发概述1.嵌入式硬件选型:嵌入式即嵌入式系统,IEEE对其定义是用于控制,监视或者辅助操作机....
发表于 10-21 12:06 12次 阅读
树莓派1:嵌入式开发概述

嵌入式开发中常用的几种通信接口总结

关注、星标公众号,直达精彩内容在嵌入式系统中,板上通信接口是指用于将各种集成电路与其他外围设备交互连....
发表于 10-21 11:21 7次 阅读
嵌入式开发中常用的几种通信接口总结

嵌入式系统移植之TFTP配置方法(自己学习总结)

TFTP服务TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。嵌入式linux的t....
发表于 10-21 11:08 6次 阅读
嵌入式系统移植之TFTP配置方法(自己学习总结)

Linux嵌入式学习过程

Linux嵌入式学习过程循序渐进学习嵌入式开发技术一、练好基本功二、嵌入式Linux应用开发误区一、....
发表于 10-21 11:07 8次 阅读
Linux嵌入式学习过程

嵌入式Linux开发环境搭建之安装Ubuntu

最近打算重新自学 linux 嵌入式,既然要重来,那就得从头开始,linux 开发第一件事就是搭建 ....
发表于 10-21 11:06 11次 阅读
嵌入式Linux开发环境搭建之安装Ubuntu

嵌入式分层概括总结

最近重新进入嵌入式领域,有必要对嵌入式分层架构有一个清晰的理解。经过多方查阅以及个人的理解,本人对嵌....
发表于 10-21 10:51 10次 阅读
嵌入式分层概括总结

嵌入式软件开发学习资料

黑发不知勤学早,白首方悔读书迟。适合学习嵌入式软件开发的资料,除了粤嵌的,其他的我都看过。非嵌入式方....
发表于 10-21 10:51 7次 阅读
嵌入式软件开发学习资料

嵌入式学习之线程

线程概述一个程序中的多个执行路线叫做线程,线程是一个进程内部的控制序列。所有的进程都至少有一个执行线....
发表于 10-21 10:51 4次 阅读
嵌入式学习之线程

【嵌入式实验】《嵌入式数据库 sqlite 移植及使用》

嵌入式数据库 sqlite 移植及使用一、实验目的二.实验内容三.预备知识四.实验设备及工具(包括软....
发表于 10-21 10:51 6次 阅读
【嵌入式实验】《嵌入式数据库 sqlite 移植及使用》

【嵌入式技能树】

嵌入式工程师需要哪些技能书/技能加点? 学习程度:熟悉 < 有过经验 < 熟练 < 精通文章目录通用....
发表于 10-21 10:21 8次 阅读
【嵌入式技能树】

嵌入式系统的分类与组成

一、嵌入式系统分类(1) 嵌入式微处理器(EMBEDDED MICROPROCESSOR UNIT,....
发表于 10-21 10:21 6次 阅读
嵌入式系统的分类与组成

嵌入式Linux开发学习如何入门、如何深入?

嵌入式Linux开发学习如何入门、如何深入?学习步骤如下:1、Linux 基础安装Linux操作系统....
发表于 10-21 10:21 8次 阅读
嵌入式Linux开发学习如何入门、如何深入?

嵌入式搭建ftp服务器

嵌入式ftp下载源码git clone git@github.com:gamman/stupid-F....
发表于 10-21 10:06 9次 阅读
嵌入式搭建ftp服务器

为什么嵌入式开发中一般都使用Linux系统?

Linux系统与其它操作系统相比具有轻量化、易裁剪、稳定性高、免费开源等优势,且Linux系统能很好....
发表于 10-21 09:51 6次 阅读
为什么嵌入式开发中一般都使用Linux系统?

LCD屏幕操作原理_嵌入式Linux

5.1 LCD 操作原理在 Linux 系统中通过 Framebuffer 驱动程序来控制 LCD。....
发表于 10-21 09:51 8次 阅读
LCD屏幕操作原理_嵌入式Linux

嵌入式Linux怎么搭建开发环境?

全文下载地址:嵌入式Linux系统开发完全手册 第二版2.1 安装Windows软件2.1.1 这么....
发表于 10-21 09:36 7次 阅读
嵌入式Linux怎么搭建开发环境?

嵌入式开发版如何通过网线连接电脑,SecureCRT连接嵌入式板子

1.与开发版相连的网口修改为静态IP2.关闭电脑防火墙3.打开TFTP服务器创建工具,创建TFTP服....
发表于 10-21 09:36 6次 阅读
嵌入式开发版如何通过网线连接电脑,SecureCRT连接嵌入式板子

从存储器哪一个位置开始读取代码呢

代码是从哪里开始运行的? 从存储器哪一个位置开始读取代码呢?...
发表于 10-21 09:11 0次 阅读

如何对STM32H747 / STM32H745进行测试

STM32H747/757系列产品有哪些性能? 如何对STM32H747 / STM32H745进行测试? ...
发表于 10-21 08:24 0次 阅读

请问一下STM32CubeMX是如何创建DMA的

什么是DMA?DMA的工作原理是什么? STM32CubeMX是如何创建DMA的? ...
发表于 10-21 06:33 0次 阅读

嵌入式的初步了解

2020年2月25日,我第一次接触到了这门课程——嵌入式设计。在没有了解这门课之前,就连“嵌入式”这....
发表于 10-20 21:21 20次 阅读
嵌入式的初步了解

嵌入式 Linux 开发基本概念

1.2.1 嵌入式 Linux 开发有哪些内容?嵌入式 Linux 系统,就相当于一套完整的 PC ....
发表于 10-20 21:21 18次 阅读
嵌入式 Linux 开发基本概念

嵌入式软件运行流程详述

1. 上电复位、板级初始化阶段• 嵌入式系统上电复位后完成板级初始化工作。• 板级初始化程序具有完全....
发表于 10-20 21:06 4次 阅读
嵌入式软件运行流程详述

嵌入式 Linux 的学习新路线

很多人喜欢从系统启动流程开始学习:先学习裸机,裸机集合起来就是 u-boot,再学习内核移植、驱动开....
发表于 10-20 21:06 7次 阅读
嵌入式 Linux 的学习新路线

嵌入式_流水线

流水线一、定义流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是....
发表于 10-20 20:51 12次 阅读
嵌入式_流水线

嵌入式系统开发者需要掌握什么技术?

大家好,我是小嵌,在知乎上看到这个问题,其中有一个答主的答案很经典,特此分享给大家。说实话,问题中嵌....
发表于 10-20 20:20 6次 阅读
嵌入式系统开发者需要掌握什么技术?

嵌入式Linux容器技术

嵌入式Linux容器技术一、Linux容器技术Linux Container容器是一种内核虚拟化技术....
发表于 10-20 20:06 8次 阅读
嵌入式Linux容器技术

嵌入式内存分布详解

前言硬件程序调试比较看重内存的分布情况,可以通过编译输出文件来分析运行时的数据结构如有疑问,欢迎指正....
发表于 10-20 20:06 8次 阅读
嵌入式内存分布详解

TMS320VC5501 定点数字信号处理器

TMS320VC5501(5501)定点数字信号处理器(DSP)基于TMS320C55x™DSP生成CPU处理器内核。 C55x™DSP架构通过增加并行性和全面关注降低功耗来实现高性能和低功耗。 CPU支持内部总线结构,该结构由一个程序总线,三个数据读总线,两个数据写总线以及专用于外设和DMA活动的附加总线组成。这些总线能够在一个周期内执行最多三次数据读取和两次数据写入。并行,DMA控制器可以独立于CPU活动执行数据传输。 C55x™CPU提供两个乘法累加(MAC)单元,每个单元能够进行17位×17位乘法运算。单循环。额外的16位ALU支持中央40位算术/逻辑单元(ALU)。 ALU的使用受指令集控制,提供优化并行活动和功耗的能力。这些资源在C55x CPU的地址单元(AU)和数据单元(DU)中进行管理。 C55x DSP代支持可变字节宽度指令集,以提高代码密度。指令单元(IU)从内部或外部存储器执行32位程序提取,并为程序单元(PU)排队指令。程序单元解码指令,将任务指向AU和DU资源,并管理完全受保护的管道。预测分支功能可避免执行条件指令时的管道刷新。 5501外设...
发表于 10-09 14:55 395次 阅读
TMS320VC5501 定点数字信号处理器

AM4379 AM437x ARM Cortex-A9 微处理器 (MPU)

TI AM437x高性能处理器基于ARM Cortex-A9内核。 这些处理器通过3D图形加速得到增强,可实现丰富的图形用户界面,还配备了协处理器,用于进行确定性实时处理(包括EtherCAT,PROFIBUS,EnDat等工业通信协议)。该器件支持高级操作系统(HLOS)。基于Linux的® 可从TI免费获取。其它HLOS可从TI的设计网络和生态系统合作伙伴处获取。 这些器件支持对采用较低性能ARM内核的系统升级,并提供更新外设,包括QSPI-NOR和LPDDR2等存储器选项。 这些处理器包含功能方框图中显示的子系统,并且后跟相应的“说明”中添加了更多信息说明。 处理器子系统基于ARM Cortex-A9内核,PowerVR SGX™图形加速器子系统提供3D图形加速功能以支持显示和高级用户界面。 可编程实时单元子系统和工业通信子系统(PRU-ICSS与ARM内核分离,允许单独操作和计时,以实现更高的效率和灵活性.PRU-ICSS支持更多外设接口和EtherCAT,PROFINET,EtherNet /IP,PROFIBUS,以太网Powerlink,Sercos,EnDat等...
发表于 09-25 11:51 364次 阅读
AM4379 AM437x ARM Cortex-A9 微处理器 (MPU)