2026年8月28日

调度器80—确定性调度

摘要: 一、什么是确定性调度 确定性调度(Deterministic Scheduling) 1. 定义 确定性调度指调度行为的时间特性是可预测、可保证的——任务能在明确的时间约束内被调度执行,最坏情况延迟(WCET/WCRT)有上界且可计算。 核心不是"快",而是"可预测"——每次都能在承诺的时间内完成, 阅读全文

posted @ 2026-08-28 15:54 Hello-World3 阅读(13) 评论(0) 推荐(0)

2026年8月25日

内存管理-72-THP-2-chatGPT

摘要: 一、使能THP对性能和内存的影响 1. THP 带来的性能收益 收益来源 机制 幅度 TLB miss 减少 一个 TLB 条目覆盖 2MB(原来需要 512 个 4KB 条目) TLB miss 率可降低 50-90% 页表开销减少 一个 PMD 条目替代 512 个 PTE 条目 页表内存减少 阅读全文

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

2026年8月24日

内存管理-80-PAGE_REPORTING-6.1

摘要: 一、page report 简介 CONFIG_PAGE_REPORTING —— 空闲页报告机制 1. 一句话总结 Page Reporting 让虚拟机(Guest)告诉宿主机(Host)"哪些物理页我不用了",Host 可以回收这些页面的物理内存给其他虚拟机或自身使用,实现内存超分(overc 阅读全文

posted @ 2026-08-24 11:41 Hello-World3 阅读(13) 评论(0) 推荐(0)

2026年8月22日

内存管理-79-free_pages-6.1

摘要: 调用路径: free_pages(addr, order) __free_pages(page, order) free_the_page(page, order) if (pcp_allowed_order(order)) { //计划还给PCP free_unref_page(page, ord 阅读全文

posted @ 2026-08-22 22:19 Hello-World3 阅读(10) 评论(0) 推荐(0)

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

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

posted @ 2026-08-22 11:07 Hello-World3 阅读(10) 评论(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 阅读(6) 评论(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 阅读(10) 评论(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 阅读(10) 评论(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 阅读(6) 评论(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 阅读(10) 评论(0) 推荐(0)

导航