性能之颠 | simpleperf分析程序性能,生成火焰图

定义Simpleperf 是Google随NDK一起发布的一款profile工具(注:从NDK r13开始),它是针对Android平台的一个 native 层性能分析工具。使用步骤本篇是分析运行在android设备下的程序1. 将NDK中Simpleperf工具的可执行程序 push 到手机上cd <NDK>/simpleperf/bin/android/<对应的版本,根据被测

- 阅读全文 -

Linux源码 | EM能量模型

本文是基于linux kernel 5.15.41能量模型(EM)<kernel/power/energy_model.c | 源代码 | v5.15.41>框架是一种驱动程序与内核子系统之间的接口。其中驱动程序了解不同性能层级的设备所消耗的功率,而内核子系统愿意使用该信息做出能量感知决策。EM框架管理着系统中各个设备提供的“性能域”,也就是频率功率的映射表,相关的能量感知算法可通过接

- 阅读全文 -

Linux源码 | Thermal框架源码剖析

1. 框架结构thermal core:thermal主要的程序,驱动初始化程序,维系thermal zone、governor、cooling device三者的关系。thermal zone device:创建thermal zone节点和连接thermal sensor,在/sys/class/thermal/目录下的thermal_zone*,通过dtsi文件进行配置生成。thermal

- 阅读全文 -

Linux内核 | 中断机制

1. 中断中断是一种硬件信号,由具体的硬件设备产生的。不同的硬件设备对应唯一的中断号,处理器是通过中断号(IRQ n)识别不同的硬件设备,并执行对应的中断处理程序或中断服务例程(ISR)。2. 中断处理机制中断处理系统在Linux中是非常依赖体系结构的,硬件设备产生中断,通过总线把电信号发送到中断控制器,如果中断线是激活状态(中断线是允许被屏蔽的),中断处理器会将中断信号发往处理器,处理器会立即停

- 阅读全文 -

Linux内核 | 系统调用

1. 系统调用内核提供的用户空间和内核进行交互的一组接口,应用程序受限地访问硬件设备,提供创建新线程并与已有的进程进行通信,也提供了申请操作系统其他资源的能力。1.2 系统调用形式asmlinkage long sys_getpid(void)asmlinkage限定词是一个编译指令,通知编译器仅从栈中提取该函数的参数,每个系统调用都需要这个限定词。为了兼容32位和64位系统,函数返回long。1

- 阅读全文 -

索引 | 博客文章目录

爱技术 | 爱分享 | 爱生活目前研究操作系统内核相关不喜勿喷,欢迎交流Linux源码剖析Linux源码 | Thermal框架源码剖析Linux源码 | PM Qos源码剖析Linux源码 | EM能量模型Linux内核设计Linux内核 | 进程管理Linux内核 | 进程调度Linux内核 | 系统调用Linux内核 | 中断机制Linux内核 | 内核同步Linux设备驱动Linux设备驱

- 阅读全文 -

机器学习 | 决策树 理论篇

决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树。决策树学习的关键在于如何选择最优划分属性。我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高。经典的属性划分方法信息增益增益率基尼指数信息增益“信息熵”是度量样本集合纯度最常用的一种指标。 <div align=center></div>属性a对样本集D进行

- 阅读全文 -

嵌入式 | ARM中断异常

<div align=center></div> <div align=center></div> 异常优先级:<div align=center></div> ARM处理器的异常空间:<div align=center></div> 在所有异常的入口,IRQ 中

- 阅读全文 -

嵌入式 | ARM工作模式详解

ARM v4版本的处理器有以下两个工作状态:ARM状态:32位,执行字对准的ARM指令。(性能好,代码密度小Thumb状态:16位,执行半字对准的Thumb指令。(性能差,代码密度大) 进入Thumb状态的方法是:执行BX指令,并设置操作数寄存器的状态(位[0])为1。在Thumb状态进入异常(所有的异常都是ARM状态),当异常处理返回时自动转换Thumb指令。进入ARM状态的方法是:执

- 阅读全文 -