Правильный способ выпустить огромную страницу? - PullRequest
0 голосов
/ 11 июня 2019

Допустим, я монтирую огромные страницы на /mnt/hugepages; а затем два приложения open() и затем mmap() на одной огромной странице.

После одного сбоя, другого close(), а затем munmap() я заметил, что огромная страница все еще находится внутри /mnt/hugepages, numastat -vm также показывает, что огромная страница занята. Затем я вручную удаляю этот файл (/ vastpage), numastat -vm все еще показывает, что огромная страница занята. Затем я убил оставшееся приложение. Наконец, numastat -vm показывает, что огромная страница больше не занята.

Теперь мой вопрос: как правильно в этом случае выпустить огромную страницу, не убивая все приложения, ранее создавшие страницу?

Я прочитал это сообщение .

Но мой пост отличается тем, что я не хочу убивать все приложения, но выпускаю огромную страницу как можно скорее и не хочу размонтировать.

Спасибо!

1 Ответ

1 голос
/ 13 июня 2019

Чтобы удалить файлы, необходимо отменить отображение всех сопоставлений, закрыть все файловые дескрипторы и отменить связь всех имен.

Вам необходимо вызвать unlink() для файла.

...