【发布时间】:2019-02-14 06:59:25
【问题描述】:
我正在尝试将 U-Space 分配的虚拟内存 (shm) 映射到特定的 DIMM。 我成功地使用 get_user_pages_remote 检索 pfns 作为指向 vmemory 的起始指针,然后使用 page_to_pfn 将每个 page 结构转换为 pfn(顺便说一句,这些 pfns 是进一步用于为专有的图像采集卡设备创建分散收集表并完美地完成工作)。但是,我没有找到一种方法来识别每个物理地址(pfn)来自哪个物理 DIMM(DRAM)。互联网搜索产生了一些 DRAM 地址映射方案,但所有这些方案都可以处理模块内部导航,即:行、列、组、通道和排名,所有前者都依赖于内存提供程序架构,例如https://www.betriebssysteme.org/wp-content/uploads/2017/04/Hillenbrand.pdf。另一方面,深入研究 SMBIOS 规范https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf,可以从 /dev/mem (dmidecode -t memory) 检索系统驻留 DIMM 属性,但是我无法将这两个信息源链接在一起并最终映射页面。
我们将不胜感激。
谢谢,
尤尔。
【问题讨论】:
标签: memory-management linux-kernel shared-memory ram