![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux内核
文章平均质量分 76
Cc又菜又帅
这个作者很懒,什么都没留下…
展开
-
树莓派5移植rt-patch
笔者想用树莓派5做运动控制器,但是原生linux的实时性比较差,为了达到硬实时,需要移植rt-patch。原创 2024-03-03 23:46:32 · 802 阅读 · 0 评论 -
perf采火焰图
Perf的全名是performance Event,通过perf,程序可以利用PMU、tracepoint获取内核的性能信息。Perf可以分析的事件非常多,可以分析hardware event,如cpu-cycle、instructions、cache-misses、branch-misses等;可以分析software event,如page-faults、context-switches等,也可以通过software event来采集火焰图,另一种就是tracepoint event。原创 2023-09-10 11:43:21 · 192 阅读 · 1 评论 -
kprobe源码分析
kprobe 是一种动态调试机制,用于debugging,动态跟踪,性能分析,动态修改内核行为等,2004年由IBM发布,是名为Dprobes工具集的底层实现机制[1][2],2005年合入Linux kernel。probe的含义是像一个探针,可以不修改分析对象源码的情况下,获取Kernel的运行时信息。kprobe的实现原理是把指定地址(探测点)的指令替换成一个可以让cpu进入debug模式的指令,使执行路径暂停,跳转到probe 处理函数后收集、修改信息,再跳转回来继续执行。原创 2023-09-10 11:41:16 · 173 阅读 · 2 评论 -
Linux经典自旋锁
3、"eor %w1, %w2, %w0, lsr #16"为什么能去除lockval的next域。STR是将寄存器中的数字载入内存。格式如下:STR{条件} 源寄存器,<存储器地址>2、大小端模式不同,为什么TICKET_SHIFT能写死为16。LDR是将内存的数据加载到寄存器中,或是载入立即数。1、为什么同时用了ROR和LSR,貌似用一个就够了。4、“发送本地事件,避免在独占加载前忘记解锁”在寄存器之间移动数据,或者向寄存器中写立即数。4、CBZ和CBNZ。原创 2023-03-16 23:52:56 · 185 阅读 · 0 评论 -
Linux调度时机(抢占&调度)
Linux内核调度时机原创 2023-01-08 23:56:49 · 1106 阅读 · 0 评论 -
Linux内存反向映射
Linux内存反向映射原创 2023-01-02 18:48:04 · 387 阅读 · 0 评论