释放巨大页面的正确方法?

时间:2019-06-11 14:57:54

标签: c linux shared-memory mmap huge-pages

比方说,我在/mnt/hugepages上放置了大量网页;然后将两个应用程序open()mmap()移至同一大页面。

一个崩溃之后,另一个close()然后是munmap()崩溃了,我注意到仍然在/mnt/hugepages内分配了大页,numastat -vm也显示了一个大页已被占用。然后,我手动删除该文件(/ hugepage),numastat -vm仍然显示一个大页面已被占用。然后,我杀死了其余的应用程序。最后,numastat -vm显示大页面不再被占用。

现在我的问题是,在这种情况下释放大型页面而不杀死以前映射页面的所有应用程序的正确方法是什么?

我确实读过这个post

但是我的帖子与众不同,我不想杀死所有应用程序,但希望尽快发布巨大的页面,并且我不想卸载。

谢谢!

1 个答案:

答案 0 :(得分:1)

要删除文件,您需要取消所有映射的映射,关闭所有文件描述符并取消链接所有名称。

您需要在文件上调用unlink()