我正在做一些实验。实验中使用了一些大页(2MB),以便在进行虚拟地址转换时可以保持21位页偏移不变。我找到了一些关于如何在互联网上启用大页面的方法。这是有效的。但我对其原理不是很清楚,所以想请教一下?
It requires Hugepages and assumes they are mounted on `/mnt/hugetlbfs/`. This value can be modified by changing the value of FILE_NAME.
The mount point must be created previously:
`$ sudo mkdir /mnt/hugetlbfs`.
Once reserved, hugepages can be mounted:
`$ sudo mount -t hugetlbfs none /mnt/hugetlbfs`
Note that this may require to use `sudo` for the examples or to change the permissions of the `/mnt/hugetlbfs/` folder.
To enable a fixed amount of huge pages, after a reboot the number of huge pages must be set:
`$ echo 100 > /proc/sys/vm/nr_hugepages`
一开始我的理解是原来系统是通过4Kb
页来管理的,现在我启用了大页,那么所有的内存都会通过大页来管理。但我读了一些解释并比较了命令。感觉就好像创建了一个文件夹,这个文件夹里的文件是用大页来管理的,不在这个文件夹里的文件是用4KB来管理的。在C语言中,我可以用来buffer = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE|HUGEPAGES, -1, 0);
创建大页面。
我的理解正确吗?