int free_hugepages(void *addr);
На платформе i386 аппаратная часть управления памятью знает об обычных страницах (4 kB) и огромных страницах (2 или 4 MB). Похожим образом и на платформе ia64 аппартная часть знает об огромных страницах разных размеров. Упомянутые системные вызовы обслуживают выделение огромных страниц в память процесса или их освобождение. Огромные страницы остаются в памяти и не сбрасываются на своппиг.
Параметр key - это некий идентификатор. Он равен нулю, если выделено ноль страниц и нет страниц унаследованных процессами-потомками. Он больше нуля, если несколько страниц разделяются несколькими приложениями, использующими один и тот же key и приложения являются процессами-потомками.
Параметр addr вызова free_hugepages() говорит какая страница будет освобождена - это значение, которое возвращает вызов alloc_hugepages(). (Память фактически освобождается только когда все пользователи освобождают её). Параметр addr вызова alloc_hugepages() имеет в длину hint, и ядро может это поддерживать, а может нет. Адреса должны быть должным образом выравнены.
Параметр len является длиной требуемого сегмента. Она должна быть кратной размеру огромной страницы.
Параметр prot задаёт защиту выделяемого сегмента памяти. Может принимать одно из значений PROT_READ, PROT_WRITE, PROT_EXEC.
Параметр flag игнорируется, пока значение key не является положительным. В этом случае, если flag установлен в значение IPC_CREAT, то новый огромный сегмент создаётся, если не существуют других сегментов с заданным значением key . Если флаг не установлен и не существуют других сегментов с заданным key , то возвращается ENOENT. .SHВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ В случае успеха alloc_hugepages возвращает выделенный виртуальный адрес, а free_hugepages возвращает ноль. В случае ошибки возврщается -1 и значение errno устанавливается должным образом.
/proc/meminfo Предоставляет информацию о количестве настроенных страниц hugetlb и их размер в трёх переменных HugePages_Total, HugePages_Free, Hugepagesize.
Максимальное количество огромных страниц может быть задано с помощью параметра загрузки hugepages= .
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |