Provided by: manpages-ru-dev_4.18.1-1_all bug

ИМЯ

       alloc_hugepages, free_hugepages - выделяет или освобождает огромные страницы

СИНТАКСИС

       void *syscall(SYS_alloc_hugepages, int key, void addr[.len], size_t len,
                     int prot, int flag);
       int syscall(SYS_free_hugepages, void *addr);

       Note:  glibc  provides  no  wrappers  for  these  system  calls,  necessitating the use of
       syscall(2).

ОПИСАНИЕ

       The system calls alloc_hugepages()  and free_hugepages()  were introduced in Linux  2.5.36
       and  removed  again  in Linux 2.5.54.  They existed only on i386 and ia64 (when built with
       CONFIG_HUGETLB_PAGE).  In Linux 2.4.20, the syscall numbers exist, but the calls fail with
       the error ENOSYS.

       На  i386  аппаратура  управления  памятью  умеет  работать с обычными страницами (4 КиБ) и
       огромными страницами (2 или  4 МиБ).  Подобно  этому,  ia64  умеет  работать  с  огромными
       страницами разных размеров. Эти системные вызовы служат для отображения огромных страниц в
       память процесса или её освобождения. Огромные страницы блокируются в  памяти  и  не  могут
       быть вытеснены в пространство подкачки.

       Аргумент key служит идентификатором. При нулевом значении страницы считаются частными и не
       наследуются  потомками.  При  положительном  значении  страницы   совместно   используются
       несколькими приложениями посредством одинакового key и наследуются процессами-потомками.

       Аргумент  addr в free_hugepages() указывает какую страницу нужно освободить: его значением
       является результат вызова alloc_hugepages(). (Память, на самом деле, освобождается  только
       когда  все  пользователи её освободят.) Аргумент addr в alloc_hugepages() — это подсказка,
       которой ядро может и не воспользоваться.  Адреса  должны  быть  выровнены  соответствующим
       образом.

       Аргумент  len  задаёт  длину  требуемого  сегмент.  Он должен быть кратен размеру огромной
       страницы.

       Аргумент prot определяет тип защиты сегмента памяти. Может быть указано одно из  значений:
       PROT_READ, PROT_WRITE, PROT_EXEC.

       Аргумент flag игнорируется, если key не является положительным. В этом случае, если flagIPC_CREAT, то создаётся новый сегмент огромной страницы, если не  существует  ни  один  из
       указанных  идентификаторов. Если флаг не задан, то возвращается ENOENT, если не существует
       сегмента с заданным идентификатором.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       On success, alloc_hugepages()  returns the allocated virtual address, and free_hugepages()
       returns zero.  On error, -1 is returned, and errno is set to indicate the error.

ОШИБКИ

       ENOSYS Системный вызов не поддерживается данным ядром.

ФАЙЛЫ

       /proc/sys/vm/nr_hugepages
              Количество настроенных страниц hugetlb. Доступен для чтения и записи.

       /proc/meminfo
              Выдаёт  информацию  о  числе  настроенных  страниц  hugetlb  и  их  размере  в трёх
              переменных: HugePages_Total, HugePages_Free, Hugepagesize.

СТАНДАРТЫ

       These extinct system calls were specific to Linux on Intel processors.

ЗАМЕЧАНИЯ

       These system calls are gone; they existed only in Linux 2.5.36 through  to  Linux  2.5.54.
       Now the hugetlbfs filesystem can be used instead.  Memory backed by huge pages (if the CPU
       supports them) is obtained by using mmap(2)  to map files in this virtual filesystem.

       Максимальное число огромных страниц можно задать в параметре загрузки ядра hugepages=.

ПЕРЕВОД

       Русский   перевод   этой   страницы   руководства   был   сделан    Dmitry    Bolkhovskikh
       <d20052005@yandex.ru> и Yuri Kozlov <yuray@komyakino.ru>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если  вы  обнаружите  ошибки  в  переводе этой страницы руководства, пожалуйста, отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.