dpdk大页内存
大页内存使用
设置大页个数
//设置256个大页,每个大页2M,则将256写入下面这个文件中
echo 256 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
挂载大页
设置完大页后,为了让大页生效,需要挂载大页文件系统。例如将hugetlbfs挂载到/mnt/huge。刚挂载完时/mnt/huge目录是空的,里面没有一个文件,直到有进程使用共享内存方式使用了这个大页系统为止,才会在这个目录下创建大页文件。
mkdir /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
使用大页
open以后就会创建一个大页文件,里面记录了虚拟地址到物理地址的映射关系。
int main (int argc, char **argv)
{
int fd;
UINT64 addr;
fd = open("/mnt/huge/test_1", O_RDWR | O_CREAT);
if (fd < 0) {
printf("open failed!\n");
return -1;
}
addr = mmap(NULL, 2048, PROT_READ | PROT_WRITE, MAP_SHARED,fd , 0);
printf("addr = %p\n", addr);
return 0;
}
大页内存创建
后续