Linux如何处理(受保护的)内存区域?

4

从dmesg、e820日志中得到:

BIOS-e820: [mem 0x0000000180000000-0x000000047fffffff] (protected)

这标识了一种NVDIMM类型的内存模块。但是,Linux(特别是4.2及以上版本)如何处理这个保护区域?它将其用作交换空间、常规内存还是其他方式?

1个回答

2
这似乎是由于Kernel版本4.1中引入的Intel Persistent Memory (PMEM)驱动程序所使用。它用于持久性存储。
持久性存储或存储介绍在以下网址:

http://pmem.io/

这个网站将PMEM解释为一种介于硬盘/固态硬盘持久存储和易失性随机访问内存(RAM)之间的混合形式。
http://www.phoronix.com/scan.php?page=news_item&px=PMEM-Linux-4.1-Feature&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Phoronix+%28Phoronix%29 中可以看到:
“PMEM支持非标准NVDIMM和ADR受保护内存。新的X86_PMEM_LEGACY Kconfig选项解释道:“将使用英特尔Sandy Bridge-EP参考BIOS中的非标准e820类型12标记的内存视为受保护内存。内核将向'pmem'驱动程序提供这些区域,以便用于持久存储。””
这里有人使用PMEM驱动程序的示例:

https://lists.01.org/pipermail/linux-nvdimm/2015-February/000059.html

关于Linux中持久内存使用的深入文章,请参见此处:

http://lwn.net/Articles/640113/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接