尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
init add_pages
add_pages是 Linux 内存热插拔Memory Hotplug机制中的核心函数负责向系统动态添加一段物理内存区域。它位于mm/memory_hotplug.c是__add_pages的封装额外处理了max_pfn更新和地址范围校验。核心作用动态扩展物理内存当系统运行期间需要“热添加”内存时如虚拟机动态分配、物理服务器内存热插拔内核通过add_pages将新的物理页帧纳入内存管理子系统使其能被分配器使用。代码逻辑解析int add_pages(int nid, unsigned long start_pfn, unsigned long nr_pages, struct mhp_params *params) { unsigned long end ((start_pfn nr_pages) PAGE_SHIFT) - 1; int ret; if (WARN_ON_ONCE(end DIRECT_MAP_PHYSMEM_END)) return -ERANGE; ret __add_pages(nid, start_pfn, nr_pages, params); WARN_ON_ONCE(ret); if (!params-pgmap) update_end_of_memory_vars(start_pfn PAGE_SHIFT, nr_pages PAGE_SHIFT); return ret; }边界校验计算结束物理地址end检查是否超出DIRECT_MAP_PHYSMEM_END直接映射区能覆盖的最大物理地址。如果超出返回-ERANGE。这是一个WARN_ON_ONCE因为正常情况下不会发生。委托核心操作调用__add_pages()执行实际的添加操作——为新内存建立struct page数组、初始化页帧、更新 zone 信息等。条件更新内存边界如果params-pgmap非空说明这是memremap_pages()调用用于添加设备私有内存如 GPU 显存、持久内存。此时不能更新max_pfn等全局变量因为max_pfn会影响dma_addressing_limited()的返回值。如果max_pfn被错误地扩大到设备内存范围dma_addressing_limited()会认为设备地址有限强制驱动程序使用 bounce buffer严重损害性能。只有当pgmap为空普通内存热插拔时才调用update_end_of_memory_vars()更新max_pfn、max_low_pfn和high_memory。返回结果WARN_ON_ONCE(ret)在失败时记录警告最终返回__add_pages的结果。调用场景调用者场景pgmap内存热插拔物理内存热添加NULLdevm_memremap_pages()设备私有内存如 GPU、PMEM非空关键设计为什么设备私有内存要特殊处理设备私有内存如 NVIDIA GPU 的显存虽然被映射到 CPU 地址空间但它不是系统 RAM不能用于普通内存分配。如果max_pfn被更新到包含设备内存dma_addressing_limited()会错误地认为系统的 DMA 寻址范围有限导致所有设备都被强制使用 bounce buffer——即使它们的 DMA 能力完全足够。这个!params-pgmap检查正是为了避免这种性能陷阱。
RELATED

相关推荐

免费转换Word软件推荐!无水印无套路,办公自用超省心

免费转换Word软件推荐!无水印无套路,办公自用超省心

日常办公、学习中,我们经常需要把PDF、图片、TXT等文件转换成Word格式。但市面上多数转换工具要么收费、要么带水印、要么捆绑广告,一不小心还会泄露文件隐私。今天给大家整理一套真正免费、好用、靠谱的Word转换工具,涵盖电脑离线软件、在线…

📅 2026/9/29 11:29:52
免费文件格式转换用哪个好?2026靠谱工具最全测评

免费文件格式转换用哪个好?2026靠谱工具最全测评

日常办公、学习、自媒体创作,几乎人人都逃不开文件格式转换:PDF转Word、图片转PDF、视频音频换格式、文档互转等等。但市面上转换工具五花八门,要么免费有水印、要么限制次数、要么暗藏广告弹窗,更有不少在线工具会悄悄上传文件&a…

📅 2026/9/29 11:29:52
gopass history 命令完全指南:查看任意密钥条目的完整修订历史

gopass history 命令完全指南:查看任意密钥条目的完整修订历史

应用安全开发工具 【免费下载链接】gopass The slightly more awesome standard unix password manager for teams 项目地址: https://gitcode.com/gh_mirrors/go/gopass 点击查看 免费下载 gopass 是面向团队的标准 Unix 密码管理器,其 history 命令用…

📅 2026/9/29 11:29:52
MORE NEWS

更多资讯

📰

工控现货的核心竞争力:型号覆盖、版本准确与响应速度

1. 工控现货这门生意,远不止“有货就卖”这么简单干了十几年工业自动化这一行,我越来越觉得“工控现货”这四个字被严重低估了。外行看,不就是倒买倒卖PLC、变频器、伺服电机吗?但真正在这个圈子里摸爬滚打过的人都知道&#xff0…

📰

谢希仁计算机网络第8版电子资料:结构化复习系统构建指南

简介:本资源是面向计算机专业本科生及考研备考者的《计算机网络》期末复习精要电子版资料,严格依据谢希仁《计算机网络》第8版教材核心内容梳理,聚焦高频考点与易错难点,助力高效冲刺。资料以1个结构清晰的Word文档(.d…

📰

赣州外贸定制屏风生产厂行业现状与选择指南

赣州榫兴智能家具有限公司坐落于南康家具产业带,是深耕行业15年的木工世家源头工厂,专注木质工艺研发与精细化生产,核心主营艺术屏风定制、设计与精工制作,配套承接各类木配件、木质工艺品加工及家具打样业务,依托传统…

📰

2026亲测有效:比PanDownload更稳的百度网盘高速解析下载器分享

很多朋友在使用电脑下载资料的时候,总觉得明明家里办的宽带规格很高,但是实际下载的数字却始终上不去。眼看着几十兆的文件都要等待许久,确实会让人心里产生不少焦虑。 要想弄清楚其中的缘由,不妨多从我们自己手头的硬件和线缆配…

📰

集成成像传感器与像差校正:三维摄影从硬件源头突破

拿到这个标题,我第一反应是:三维摄影这个事,终于要往“传感器本身”这个根子上钻了。过去几年大家聊3D成像,基本都是算法在补天——深度估计网络、多视图几何、NeRF换着花样上,但采集端用的还是普通二维传感器&#xf…

📰

业之峰怡家装饰公司靠谱吗,值得信赖吗

滨州业之峰怡家装饰有限公司是扎根滨州本土,依托业之峰全国连锁体系,聚焦新房整装、老房全屋翻新、别墅大宅全案三大核心业务,主打靠谱落地、透明省心一站式家装服务的本土专业家装品牌。 核心实力拆解 正规合规的资质背书,稳定经…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬