最近,我正在dpdk(dpdk.org)中阅读有关大页面的代码。我看到代码故意使虚拟地址在物理地址区域中连续。具体来说,它首先检查大页面中是否存在物理连续区域,然后将物理连续区域映射到连续虚拟地址。这如何提高性能?
该源代码表示:
为了保留大量连续的内存,我们使用linux的巨大页面功能。为此,我们需要安装ugeltlbfs。此代码将在此目录中创建许多文件(每页一个),并将它们映射到虚拟内存中。对于每个页面,我们将获取其物理地址并对其进行重新映射,以具有虚拟的连续区域和物理的连续区域。
为什么需要重新映射?