新闻详情

新闻详情

首页 / 资讯中心 / 详情

math PFN_UP

发布时间:2026/9/25 4:28:41来源:尧图网络
math PFN_UP
PFN_UP是PFN_DOWN的配套宏用于将物理地址向上取整转换为页帧号PFN。定义在include/linux/pfn.h中。定义与原理#define PFN_UP(x) (((x) PAGE_SIZE - 1) PAGE_SHIFT)它的核心逻辑是先将地址加上PAGE_SIZE - 1再右移PAGE_SHIFT位相当于向上取整除法。在 x86 架构下PAGE_SHIFT为 12PAGE_SIZE为 4096因此PFN_UP(addr) (addr 4095) / 4096核心作用将物理地址向上取整到它所在的下一个页帧号。如果地址恰好落在页边界上则返回该页的页帧号否则返回下一页的页帧号。表达式结果说明PFN_UP(0)0恰好是页边界返回第 0 页PFN_UP(1)1跨越了第 0 页向上取整到第 1 页PFN_UP(4095)1仍在第 0 页内向上取整到第 1 页PFN_UP(4096)1恰好是页边界返回第 1 页PFN_UP(4097)2跨越了第 1 页向上取整到第 2 页与PFN_DOWN的对比宏行为示例PFN_DOWN(x)向下取整返回地址所在页的 PFNPFN_DOWN(4095) 0PFN_UP(x)向上取整返回地址之后的页的 PFNPFN_UP(4095) 1两者的关系可以用一个不等式表示PFN_DOWN(addr) PFN_UP(addr)内核中的典型用途PFN_UP最常见的场景是计算一段内存区域跨越的页数尤其是当起始或结束地址不在页边界上时计算覆盖某段内存所需的页数nr_pages PFN_UP(end) - PFN_DOWN(start);确保分配的内存覆盖请求范围如果请求的大小不是页大小的整数倍PFN_UP会确保分配的页数足够覆盖整个请求。DMA 缓冲区计算设备 DMA 操作通常要求缓冲区按页对齐PFN_UP用于确定实际需要映射的页数。使用注意PFN_UP是向上取整意味着即使地址只多出 1 字节也会算作新的一页。该宏假设输入是物理地址不适用于虚拟地址。在计算页数时通常需要PFN_UP(end) - PFN_DOWN(start)而不是简单的PFN_UP(end) - PFN_UP(start)否则可能少算一页。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

一个端点服务整个团队:MiniStack多账户与多区域隔离机制完全解析 2026/9/25 5:43:44

一个端点服务整个团队:MiniStack多账户与多区域隔离机制完全解析

一个端点服务整个团队:MiniStack多账户与多区域隔离机制完全解析 【免费下载链接】ministack Ministack: Free, open-source local AWS emulator - 60 services, Terraform compatible, real databases. Free forever. MIT licensed. 项目地址: https://gitcode.c…

阅读更多 →
bilibili-downloader的Cookie设置全流程:如何正确获取B站登录Cookie解锁大会员视频 2026/9/25 5:43:44

bilibili-downloader的Cookie设置全流程:如何正确获取B站登录Cookie解锁大会员视频

bilibili-downloader的Cookie设置全流程:如何正确获取B站登录Cookie解锁大会员视频 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloa…

阅读更多 →
Atlas 300V Pro 24G推理卡YOLO部署实战:从模型转换到性能调优 2026/9/25 5:43:38

Atlas 300V Pro 24G推理卡YOLO部署实战:从模型转换到性能调优

1. 先搞清楚:Atlas 300V 24G到底是什么卡最近总有人问我,Atlas 300V 24G是不是运算加速卡,还有人在搜“atlas部署yolo”能不能行。我用一句话先给结论:Atlas 300V Pro(24GB显存版本)就是华为专门做AI推理的…

阅读更多 →
Atlas 300V 24G部署YOLO全指南:从模型转换到性能调优 2026/9/25 5:43:38

Atlas 300V 24G部署YOLO全指南:从模型转换到性能调优

最近不少做安防、工业质检和边缘视频分析的朋友都在问同一个问题:Atlas 300V 24G 算不算运算加速卡,能不能拿来部署 YOLO 模型?我的答案很直接:它是昇腾生态里典型的 AI 推理加速卡,不是拿来搞通用计算的,但…

阅读更多 →
智能电表远程抄表缴费平台JAVA源码:从建模到闭环落地 2026/9/25 5:43:38

智能电表远程抄表缴费平台JAVA源码:从建模到闭环落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Atlas 300V 24G 推理卡部署 YOLO 全流程指南:从硬件解析到性能调优 2026/9/25 5:43:38

Atlas 300V 24G 推理卡部署 YOLO 全流程指南:从硬件解析到性能调优

把 Atla s 300V 24G 买回来之后,第一件事不是上服务器插卡跑代码,而是先把“这到底是一块什么卡”这个问题想清楚。因为 300V 这个名字在昇腾产品线里有点特殊,它既不像 Atlas 800 训练服务器那样一看就是干重活的,也不像 Atlas 2…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉