Lines Matching +full:page +full:- +full:size

11 the Linux kernel.  This support is built on top of multiple page size support
13 support 4K and 2M (1G if architecturally supported) page sizes, ia64
14 architecture supports multiple page sizes 4K, 8K, 64K, 256K, 1M, 4M, 16M,
15 256M and ppc64 supports 4K and 16M. A TLB is a cache of virtual-to-physical
21 Users can use the huge page support in Linux kernel by either using the mmap
30 persistent hugetlb pages in the kernel's huge page pool. It also displays
31 default huge page size and information about the number of free, reserved
32 and surplus huge pages in the pool of huge pages of default size.
33 The huge page size is needed for generating the proper alignment and
34 size of the arguments to system calls that map huge page regions.
48 is the size of the pool of huge pages.
57 huge page from the pool of huge pages at fault time.
64 with each hugetlb page is enabled, the number of surplus huge pages
68 is the default hugepage size (in kB).
82 pages in the kernel's huge page pool. "Persistent" huge pages will be
83 returned to the huge page pool when freed by a task. A user with root
88 hugetlb page is enabled, we can fail to free the huge pages triggered by
95 Once a number of huge pages have been pre-allocated to the kernel huge page
105 Some platforms support multiple huge page sizes. To allocate huge pages
106 of a specific size, one must precede the huge pages boot command parameters
107 with a huge page size selection parameter "hugepagesz=<size>". <size> must
109 page size may be selected with the "default_hugepagesz=<size>" boot parameter.
114 Specify a huge page size. Used in conjunction with hugepages
116 size. Hence, hugepagesz and hugepages are typically specified in
122 specific huge page size. Valid huge page sizes are architecture
128 implicitly specifies the number of huge pages of default size to
129 allocate. If the number of huge pages of default size is implicitly
131 parameter pair for the default size. This parameter also has a
135 For example, on an architecture with 2M default huge page size::
152 Specify the default huge page size. This parameter can
155 specific number of huge pages of default size. The number of default
158 architecture with 2M default huge page size::
165 huge page size is architecture dependent.
170 When multiple huge page sizes are supported, ``/proc/sys/vm/nr_hugepages``
171 indicates the current number of pre-allocated huge pages of the default size.
178 huge page pool to 20, allocating or freeing huge pages, as required.
180 On a NUMA platform, the kernel will attempt to distribute the huge page pool
182 task that modifies ``nr_hugepages``. The default for the allowed nodes--when the
183 task has default memory policy--is all on-line nodes with memory. Allowed
184 nodes with insufficient available, contiguous memory for a huge page will be
190 The success or failure of huge page allocation depends on the amount of
208 requested by applications. Writing any non-zero value into this file
210 number of "surplus" huge pages from the kernel's normal page pool, when the
211 persistent huge page pool is exhausted. As these surplus huge pages become
212 unused, they are freed back to the kernel's normal page pool.
214 When increasing the huge page pool size via ``nr_hugepages``, any existing
217 the new persistent huge page pool size.
220 the default huge page size by setting the ``nr_hugepages`` sysctl to a
224 normal page pool.
226 Caveat: Shrinking the persistent huge page pool via ``nr_hugepages`` such that
228 of the in-use huge pages to surplus huge pages. This will occur even if
230 this condition holds--that is, until ``nr_hugepages+nr_overcommit_hugepages`` is
231 increased sufficiently, or the surplus huge pages go out of use and are freed--
234 With support for multiple huge page pools at run-time available, much of
235 the huge page userspace interface in ``/proc/sys/vm`` has been duplicated in
238 compatibility. The root huge page control directory in sysfs is::
242 For each huge page size supported by the running kernel, a subdirectory
245 hugepages-${size}kB
260 The demote interfaces provide the ability to split a huge page into
262 1GB and 2MB huge pages sizes. A 1GB huge page can be split into 512
264 huge page size. The demote interfaces are:
267 is the size of demoted pages. When a page is demoted a corresponding
269 demote_size is set to the next smaller huge page size. If there are
270 multiple smaller huge page sizes, demote_size can be set to any of
271 these smaller sizes. Only huge page sizes less than the current huge
272 pages size are allowed.
282 demote_size) function as described above for the default huge page-sized case.
286 Interaction of Task Memory Policy with Huge Page Allocation/Freeing
297 huge page pool, using the ``nr_hugepages`` example above, is::
299 numactl --interleave <node-list> echo 20 \
304 numactl -m <node-list> echo 20 >/proc/sys/vm/nr_hugepages_mempolicy
306 This will allocate or free ``abs(20 - nr_hugepages)`` to or from the nodes
307 specified in <node-list>, depending on whether number of persistent huge pages
309 allocated nor freed on any node not included in the specified <node-list>.
312 memory policy mode--bind, preferred, local or interleave--may be used. The
313 resulting effect on persistent huge page allocation is as follows:
316 :ref:`Documentation/admin-guide/mm/numa_memory_policy.rst <numa_memory_policy>`],
320 memory for a huge page, the allocation will not "fallback" to the nearest
322 undesirable imbalance in the distribution of the huge page pool, or
336 #. The nodes allowed mask will be derived from any non-default task mempolicy,
339 shell with non-default policy, that policy will be used. One can specify a
340 node list of "all" with numactl --interleave or --membind [-m] to achieve
343 #. Any task mempolicy specified--e.g., using numactl--will be constrained by
345 be no way for a task with non-default policy running in a cpuset with a
349 #. Boot-time huge page allocation attempts to distribute the requested number
350 of huge pages over all on-lines nodes with memory.
355 A subset of the contents of the root huge page control directory in sysfs,
359 /sys/devices/system/node/node[0-9]*/hugepages/
361 Under this directory, the subdirectory for each supported huge page size
368 The free\_' and surplus\_' attribute files are read-only. They return the number
379 applied, from which node the huge page allocation will be attempted.
390 mount -t hugetlbfs \
391 -o uid=<value>,gid=<value>,mode=<value>,pagesize=<value>,size=<value>,\
404 If the platform supports multiple huge page sizes, the ``pagesize`` option can
405 be used to specify the huge page size and associated pool. ``pagesize``
407 default huge page size and associated pool will be used.
409 The ``size`` option sets the maximum value of memory (huge pages) allowed
410 for that filesystem (``/mnt/huge``). The ``size`` option can be specified
411 in bytes, or as a percentage of the specified huge page pool (``nr_hugepages``).
412 The size is rounded down to HPAGE_SIZE boundary.
415 for the filesystem. ``min_size`` can be specified in the same way as ``size``,
416 either bytes or a percentage of the huge page pool.
427 If the ``size``, ``min_size`` or ``nr_inodes`` option is not provided on
430 For ``pagesize``, ``size``, ``min_size`` and ``nr_inodes`` options, you can
432 For example, size=2K has the same meaning as size=2048.
452 aligned to the native page size of the processor; they will normally fail with
455 a hugetlb page and the length is smaller than the hugepage size.
466 ``hugepage-shm``
467 see tools/testing/selftests/vm/hugepage-shm.c
469 ``hugepage-mmap``
470 see tools/testing/selftests/vm/hugepage-mmap.c
473 to help with huge page usability, environment setup, and control.