会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
侧边栏
yooooooo
以有涯之生随无涯之学
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
54
55
56
57
58
59
60
61
62
···
135
下一页
2024年6月2日
TLB一致性维护
摘要: TLB 是页表项的物理 cache,用于加速虚拟地址到物理地址的转换。CPU 在访问一个虚拟地址时,首先会在 TLB 中查找,如果找不到对应的表项,那么就称之为 TLB miss,此时就需要去内存里查询页表,如果页表项是合法的,那么就会把它添加到 TLB 中。如果内核修改了页表,那么就需要主动的去清
阅读全文
posted @ 2024-06-02 10:42 yooooooo
阅读(442)
评论(0)
推荐(0)
2024年5月29日
find_sys_call_table和kallsysms_lookup_name的区别
摘要: find_sys_call_table 和 kallsyms_lookup_name 都可以用于查找内核符号,但它们的具体作用和使用场景有所不同。以下是两者的详细对比: 1. find_sys_call_table 作用 find_sys_call_table 是一种通过遍历内核内存或者其他方式来手
阅读全文
posted @ 2024-05-29 15:52 yooooooo
阅读(227)
评论(0)
推荐(0)
linux 内核中READ_ONCE宏定义
摘要: 在Linux内核编程中,READ_ONCE 宏用于确保从内存中读取一个变量的值时,编译器不会对这个读取操作进行优化,从而保证了读取操作的原子性。这个宏通常在需要防止编译器优化、多线程或中断上下文中使用,以确保数据的一致性和正确性。 以下是 READ_ONCE 宏的定义及其解释: #define RE
阅读全文
posted @ 2024-05-29 15:21 yooooooo
阅读(488)
评论(0)
推荐(1)
2024年5月25日
深入理解虚拟 物理地址转换,页表--基于ARMV8
摘要: 1. 页表转换寄存器描述符 1.1,页表/页目录结构 基于前言中的内核配置,内核采用39位虚拟地址,因此可寻址范围为2^39 = 512G,采用(linux 默认为五级页表,另外还有PUD,P4D,由于本文只配置三级,其他两项不予罗列)3级页表结构,分别为: PGD (Page Global Dir
阅读全文
posted @ 2024-05-25 20:25 yooooooo
阅读(690)
评论(0)
推荐(0)
2024年5月20日
arm64 下内核 crash—— 非法地址
摘要: 下面是在实际工作中遇到的一次内核(5.4.110)访问非法内存地址(空指针)导致出错的现场,在这里记录一下简单的分析流程为以后遇到类似的问题作为参考。 [ 220.619861] Unable to handle kernel NULL pointer dereference at virtual
阅读全文
posted @ 2024-05-20 14:43 yooooooo
阅读(698)
评论(0)
推荐(0)
2024年4月7日
bcc-tools工具之profile
摘要: profile是用于追踪程序执行调用流程的工具,类似于perf中的-g指令 相比perf -g而言,profile功能化更加细分,可以根据需要选择追踪层面,例如-U(用户要调用流程) -K (内核态调用流程) 下面具体介绍该工具的使用 采用profile --help,我们可以看到如下介绍: usa
阅读全文
posted @ 2024-04-07 11:17 yooooooo
阅读(172)
评论(0)
推荐(0)
2024年4月3日
linux tracepoint增加
摘要: 引入tracepoint的背景 当需要获取内核的debug信息时,通常你会通过以下printk的方式打印信息: void trace_func() { //…… printk("输出信息"); //…… } 缺点: 内核中printk是统一控制的,各个模块的printk都会被打印,无法只打印需要关注
阅读全文
posted @ 2024-04-03 17:50 yooooooo
阅读(635)
评论(0)
推荐(0)
2024年4月2日
Kernel调试追踪技术之 Kprobe on ARM64
摘要: kprobe是什么? kprobe 是一种动态调试机制,用于debugging,动态跟踪,性能分析,动态修改内核行为等,2004年由IBM发布,是名为Dprobes工具集的底层实现机制[1][2],2005年合入Linux kernel。probe的含义是像一个探针,可以不修改分析对象源码的情况下,
阅读全文
posted @ 2024-04-02 15:04 yooooooo
阅读(814)
评论(0)
推荐(0)
2024年3月26日
/proc/pids/io
摘要: rchar:代表自进程启动以来所读取的总字符数,包括通过缓存或直接读取的字符。单位是字节(bytes)。 wchar:代表自进程启动以来所写入的总字符数,包括通过缓存或直接写入的字符。单位是字节(bytes) syscr:代表自进程启动以来所执行的 read 系统调用的次数。 syscw:代表自进程
阅读全文
posted @ 2024-03-26 11:48 yooooooo
阅读(160)
评论(0)
推荐(0)
BTF:实践指南
摘要: BPF 是 Linux 内核中基于寄存器的虚拟机,可安全、高效和事件驱动的方式执行加载至内核的字节码。与内核模块不同,BPF 程序经过验证以确保它们终止并且不包含任何可能锁定内核的循环。BPF 程序允许调用的内核函数也受到限制,以确保最大的安全性以防止非法的访问。 尽管 BPF 为编写事件驱动的内核
阅读全文
posted @ 2024-03-26 10:35 yooooooo
阅读(638)
评论(0)
推荐(1)
上一页
1
···
54
55
56
57
58
59
60
61
62
···
135
下一页
公告