news 2026/4/17 21:21:16

linux Page Table 和 TLB 操作总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
linux Page Table 和 TLB 操作总结

以下是 Linux 内核中与页表和 TLB 操作对应的主要 API/函数列表,结合上述操作分类:


页表(Page Table)相关 API

1. 地址转换

操作内核 API/函数说明
虚拟地址→物理地址virt_to_phys()__pa()内核虚拟地址转物理地址
物理地址→虚拟地址phys_to_virt()__va()物理地址转内核虚拟地址
页表遍历pgd_offset()p4d_offset()pud_offset()pmd_offset()pte_offset_map()多级页表各级索引获取
获取页表项pte_t *pte = pte_offset_kernel(pmd, addr)获取内核地址的 PTE

2. 页表项管理

操作内核 API/函数说明
创建页表pgd_alloc()pud_alloc()pmd_alloc()pte_alloc()分配各级页表结构
设置映射set_pte_at()set_pmd()set_pud()设置页表项内容
建立映射remap_pfn_range()vm_insert_page()io_remap_pfn_range()建立虚拟到物理映射
删除映射pte_clear()pmd_clear()清除页表项
释放页表pgd_free()pte_free()释放页表内存

3. 权限与状态检查

操作内核 API/函数说明
检查有效位pte_present()检查页面是否在内存中
检查权限pte_write()pte_read()pte_exec()检查读写执行权限
设置权限pte_mkwrite()pte_wrprotect()pte_mkexec()修改 PTE 权限位
访问/修改位pte_young()pte_dirty()检查访问/修改位
标记访问/修改pte_mkyoung()pte_mkdirty()设置访问/修改位

4. 缺页处理

操作内核 API/函数说明
缺页异常入口handle_mm_fault()缺页异常主要处理函数
调页do_swap_page()do_anonymous_page()do_wp_page()不同类型缺页处理
页面分配alloc_page()__get_free_page()分配物理页面

5. 页表切换

操作内核 API/函数说明
切换页表switch_mm()进程上下文切换时切换页表
设置页表基址load_cr3()(x86)加载新页表基址到 CR3

TLB 相关 API

1. TLB 刷新(一致性维护)

操作内核 API/函数说明
单页刷新flush_tlb_page()flush_tlb_mm_range()使指定虚拟地址的 TLB 项无效
进程空间刷新flush_tlb_mm()使指定进程所有 TLB 项无效
全局刷新flush_tlb_all()使所有 TLB 项无效(全系统)
跨CPU刷新flush_tlb_kernel_range()刷新内核地址范围的 TLB(所有CPU)

2. TLB 刷新优化

操作内核 API/函数说明
延迟刷新tlb_gather_mmu()tlb_finish_mmu()批量 TLB 刷新优化
范围刷新flush_tlb_range()刷新指定地址范围的 TLB

3. 架构相关 TLB 操作

操作内核 API/函数说明
x86 TLB 刷新__flush_tlb_one()__flush_tlb_all()x86 架构特定 TLB 操作
ARM TLB 操作flush_tlb_all()local_flush_tlb_all()ARM 架构实现
TLB 射击smp_call_function()+ TLB 刷新多核间 TLB 一致性维护

内存映射相关 API(综合操作)

操作内核 API/函数说明
建立内存映射mmap()系统调用 →do_mmap()用户空间内存映射
取消映射munmap()do_munmap()解除内存映射
改变保护mprotect()do_mprotect_pkey()修改页面保护权限
同步映射msync()do_msync()同步内存与文件内容

关键数据结构

数据结构说明
struct mm_struct进程内存描述符,包含页表基址等信息
struct vm_area_struct虚拟内存区域描述符
pgd_tp4d_tpud_tpmd_tpte_t各级页表项类型
struct page物理页面描述符

使用示例

/* 建立页表映射示例 */pte_t*pte;spinlock_t*ptl;pte=pte_offset_map_lock(mm,pmd,addr,&ptl);if(pte_present(*pte)){/* 页面存在 */pte_mkdirty(*pte);/* 标记为脏 */pte_mkyoung(*pte);/* 标记为访问过 */}set_pte_at(mm,addr,pte,pte_mkwrite(pte_mkdirty(pte_mkyoung(*pte))));pte_unmap_unlock(pte,ptl);/* TLB 刷新示例 */flush_tlb_page(vma,addr);/* 刷新单个页面 */

总结表

操作类别页表 API 示例TLB API 示例
地址转换virt_to_phys()pte_offset_map()-
映射管理set_pte_at()pte_clear()-
权限检查pte_write()pte_present()-
缺页处理handle_mm_fault()do_swap_page()-
一致性维护-flush_tlb_page()flush_tlb_all()
批量优化-tlb_gather_mmu()tlb_finish_mmu()
上下文切换switch_mm()通常包含在switch_mm()

这些 API 主要位于以下内核文件中:

  • include/asm-generic/pgtable.h
  • arch/x86/include/asm/pgtable.h
  • arch/x86/mm/tlb.c
  • mm/memory.c
  • mm/mmap.c

实际使用中需注意架构差异和内核版本变化。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 9:20:18

轻量化5G实验室搭建方案:中小高校的低成本路径

人才缺口持续扩大,搭建专业实验室成了高校通信、物联网专业的“刚需”!但传统方案动辄百万投入、占地超百平,还得专人运维,预算有限的中小高校根本扛不住。别慌,不用堆高端设备,不用砸巨额资金,…

作者头像 李华
网站建设 2026/4/12 9:54:29

计算机Java毕设实战-基于Spring Boot的保险销售员人力资源管理系统基于springboot的寿险公司人力资源管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/16 12:28:31

具备DI、DO、AI、AO四类IO信号的采集/输出功能以及串口、网口的通信功能,主要用于对综合测试平台及样机的功能测试提供支撑。

核控卡件综合测试平台1)系统简介核控卡件综合测试平台具备DI、DO、AI、AO四类IO信号的采集/输出功能以及串口、网口的通信功能,主要用于对综合测试平台及样机的功能测试提供支撑。综合测试平台集成测试设备的对外总线接口,主要包括RS422、以太…

作者头像 李华
网站建设 2026/4/15 10:02:48

道路抛洒物数据集4521张VOC+YOLO格式

道路抛洒物数据集4521张VOCYOLO格式数据集格式:VOC格式YOLO格式压缩包内含:3个文件夹,分别存储图片、xml、txt文件JPEGImages文件夹中jpg图片总计:4521Annotations文件夹中xml文件总计:4521labels文件夹中txt文件总计&…

作者头像 李华
网站建设 2026/4/18 0:26:56

【计算机毕业设计案例】基于SpringBoot的野生动物园财务与票务一体化平台基于springboot的西安秦岭野生动物园智能化管理系统(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/7 17:13:06

信号处理仿真:傅里叶变换与频谱分析_(6).非周期信号的频谱分析

非周期信号的频谱分析 1. 引言 在信号处理领域,非周期信号的频谱分析是一个重要的课题。非周期信号在自然界和工程应用中广泛存在,例如语音信号、雷达回波信号、生物医学信号等。傅里叶变换(Fourier Transform)是频谱分析的核心工…

作者头像 李华