使用DRAM模拟持久内存(Persistent Memory)

使用Intel 教程进行参考。

首先需要一台linux设备,虚拟机一样可以。

教程里建议使用kernel版本在4.3及以上的linux版本(基本上现在的linux版本都是)

我使用的虚拟机装的linux版本为ubuntu 20.04。


教程里说的很麻烦,要对内核进行编译,但是其实现在的linux版本都可以支持PMEM,所以直接更改grub文件就行。

首先

dmesg | grep BIOS-e820

可以看到系统中的可用内存分布:

(教程示例)

[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000bffdffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bffe0000-0x00000000bfffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000053fffffff] usable

其中地址0x0000000100000000-0x000000053fffffff是可以使用的

执行下面的语句:

sudo vi /etc/default/grub

然后在其中增加一句

GRUB_CMDLINE_LINUX="memmap=nn(GMK)!ss(GMK)"

里面nn和ss都是数字,nn是你想给PM分配的大小,ss是分配开始的地址,GMK分别代表非配大小的单位。

比如:

GRUB_CMDLINE_LINUX="memmap=512M!4G"

就意味着从0x0x0000000100000000地址分配512MB的空间给PM。

然后执行下面的命令:

dmesg | grep user:

在这里插入图片描述
可以发现已经有一块区域被分配为Persistent了。然后执行:

lsblk

可以看到被分配的Persistent Memory已经被系统识别出来了。

然后执行以下命令:

mkdir /mnt/pmemdir
mkfs.ext4 /dev/pmem0
mount -o dax /dev/pmem0 /mnt/pmemdir

先在/mnt/下创建pmemdir目录,然后在pmem0上创建文件系统,再将其挂载在pmemdir目录中。

使用命令

df -h

可以查看挂载情况
在这里插入图片描述

至此结束

教程中到这写到:

Now files can be created on the freshly mounted partition for use in creating PMDK pools.

可以在新挂载的分区上创建文件,用于创建PMDK池。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值