1 2 3 4 5 ··· 78 下一页

2026年8月22日

内存管理-78-PCP-Per-CPU页缓存-6.1

摘要: 基于 Linux-6.1.115 PCP列表的完整生命周期全景图: ┌──────────────────────────────────────────────────────────────────┐ │ PCP 列表生命周期 │ ├───────────┬─────────────────── 阅读全文

posted @ 2026-08-22 11:07 Hello-World3 阅读(1) 评论(0) 推荐(0)

2026年8月21日

内存管理-77-内存检测工具-1-KMSAN-1-简介

摘要: 注: Linux-6.1.114 默认不使能。 一、KMSAN 简介 CONFIG_KMSAN(Kernel Memory Sanitizer)检测内核中对未初始化内存的使用——即读取了从未被写入过的变量/内存区域。 1. 检测什么问题 /* 问题 1:栈变量未初始化 */ int do_somet 阅读全文

posted @ 2026-08-21 14:57 Hello-World3 阅读(2) 评论(0) 推荐(0)

2026年8月20日

/proc/kallsyms

摘要: 1. 打印所有符号 echo 0 > /proc/sys/kernel/kptr_restrict; cat /proc/kallsyms 阅读全文

posted @ 2026-08-20 14:21 Hello-World3 阅读(3) 评论(0) 推荐(0)

2026年8月17日

Linux内核机制—percpu-每CPU变量-2-实现

摘要: 一、Per-CPU 变量的地址差值 每个 CPU 上同一 per-cpu 变量的地址差值是 __per_cpu_offset[cpu],它不是固定值,各 CPU 之间也不一定等距。 1. 地址计算公式: 某变量在 CPU N 上的实际地址 = 变量的"静态基址" + __per_cpu_offset 阅读全文

posted @ 2026-08-17 15:59 Hello-World3 阅读(2) 评论(0) 推荐(0)

2026年8月14日

内存管理-76-缺页异常-1-理论-chatGPT

摘要: 一、帮忙列出缺页异常各个物理内存分配路径和分配掩码 Linux 6.1 (MTK) 缺页异常的物理内存分配路径与 GFP 掩码 入口流程: do_page_fault() → handle_mm_fault() → __handle_mm_fault() // 分配页表 + 分发到具体 handle 阅读全文

posted @ 2026-08-14 21:20 Hello-World3 阅读(2) 评论(0) 推荐(0)

Arm64架构-1-上下文切换-3-各种上下文简介

摘要: 一、各种上下文简介 1. 分类总览 ARM64 上所有进入内核的路径可以归纳为: 入口类型 触发方式 Linux 上下文分类 in_interrupt() 可否睡眠 系统调用 (SVC) 用户态主动 svc 指令 进程上下文 false 可以 Page Fault (Data/Instruction 阅读全文

posted @ 2026-08-14 15:34 Hello-World3 阅读(2) 评论(0) 推荐(0)

2026年8月13日

内存管理-13-CMA内存-2-ChatGPT

摘要: 基于 Linux-6.1.114 一、分配大块(比如8MB)的CMA内存使用什么接口? 分配大块 CMA 内存的接口 1. 核心接口:cma_alloc() #include <linux/cma.h> struct page *cma_alloc(struct cma *cma, unsigned 阅读全文

posted @ 2026-08-13 21:32 Hello-World3 阅读(3) 评论(0) 推荐(0)

原子访问、READ_ONCE与普通变量访问的性能差别

摘要: 一、每CPU变量的访问速度、原子变量的访问速度、普通变量的访问速度,在Arm64 Armv8.5上有多大区别? ARM64 ARMv8.5 上三种变量访问速度对比 1. 指令级别对比 1.1 普通变量读写 // 读 ldr w0, [x1] // 1 条指令,1 cycle(L1 命中时) // 写 阅读全文

posted @ 2026-08-13 14:52 Hello-World3 阅读(5) 评论(0) 推荐(0)

2026年8月7日

内存管理-33-2-GFP分配掩码约束

摘要: 基于 Linux-6.1.114 一、全局约束 全局约束通过全局变量 gfp_allowed_mask 实现,它是一个全局 GFP 位掩码过滤器,所有页面分配请求的 gfp_mask 在进入分配器前都会与它做 AND 运算,将系统当前不允许使用的 GFP 标志位强制清除。 1. 赋值位置 (1) 初 阅读全文

posted @ 2026-08-07 17:43 Hello-World3 阅读(4) 评论(0) 推荐(0)

2026年8月6日

内存管理-38-页标志-2-page_flags.h 展开-6.1

摘要: 1. 展开文件 enum pageflags { PG_locked, PG_referenced, PG_uptodate, PG_dirty, PG_lru, PG_active, PG_workingset, PG_waiters, PG_error, PG_slab, PG_owner_pr 阅读全文

posted @ 2026-08-06 21:02 Hello-World3 阅读(7) 评论(0) 推荐(0)

1 2 3 4 5 ··· 78 下一页

导航