Lines Matching refs:huge
13 Users can use the huge page support in Linux kernel by either using the mmap
22 persistent hugetlb pages in the kernel's huge page pool. It also displays
23 information about the number of free, reserved and surplus huge pages and the
24 default huge page size. The huge page size is needed for generating the
25 proper alignment and size of the arguments to system calls that map huge page
38 HugePages_Total is the size of the pool of huge pages.
39 HugePages_Free is the number of huge pages in the pool that are not yet
41 HugePages_Rsvd is short for "reserved," and is the number of huge pages for
43 but no allocation has yet been made. Reserved huge pages
45 huge page from the pool of huge pages at fault time.
46 HugePages_Surp is short for "surplus," and is the number of huge pages in
48 maximum number of surplus huge pages is controlled by
54 /proc/sys/vm/nr_hugepages indicates the current number of "persistent" huge
55 pages in the kernel's huge page pool. "Persistent" huge pages will be
56 returned to the huge page pool when freed by a task. A user with root
57 privileges can dynamically allocate more or free some persistent huge pages
60 Pages that are used as huge pages are reserved inside the kernel and cannot
64 Once a number of huge pages have been pre-allocated to the kernel huge page
66 or shared memory system calls to use the huge pages. See the discussion of
69 The administrator can allocate persistent huge pages on the kernel boot
71 number of huge pages requested. This is the most reliable method of
72 allocating huge pages as memory has not yet become fragmented.
74 Some platforms support multiple huge page sizes. To allocate huge pages
75 of a specific size, one must precede the huge pages boot command parameters
76 with a huge page size selection parameter "hugepagesz=<size>". <size> must
77 be specified in bytes with optional scale suffix [kKmMgG]. The default huge
80 When multiple huge page sizes are supported, /proc/sys/vm/nr_hugepages
81 indicates the current number of pre-allocated huge pages of the default size.
83 default sized persistent huge pages:
87 This command will try to adjust the number of default sized huge pages in the
88 huge page pool to 20, allocating or freeing huge pages, as required.
90 On a NUMA platform, the kernel will attempt to distribute the huge page pool
94 nodes with insufficient available, contiguous memory for a huge page will be
95 silently skipped when allocating persistent huge pages. See the discussion
97 with the allocation and freeing of persistent huge pages.
99 The success or failure of huge page allocation depends on the amount of
101 allocation attempt. If the kernel is unable to allocate huge pages from
107 init files. This will enable the kernel to allocate huge pages early in
109 is still very high. Administrators can verify the number of huge pages
111 distribution of huge pages in a NUMA system, use:
116 huge pages can grow, if more huge pages than /proc/sys/vm/nr_hugepages are
119 number of "surplus" huge pages from the kernel's normal page pool, when the
120 persistent huge page pool is exhausted. As these surplus huge pages become
123 When increasing the huge page pool size via nr_hugepages, any existing surplus
124 pages will first be promoted to persistent huge pages. Then, additional
125 huge pages will be allocated, if necessary and if possible, to fulfill
126 the new persistent huge page pool size.
128 The administrator may shrink the pool of persistent huge pages for
129 the default huge page size by setting the nr_hugepages sysctl to a
130 smaller value. The kernel will attempt to balance the freeing of huge pages
132 Any free huge pages on the selected nodes will be freed back to the kernel's
135 Caveat: Shrinking the persistent huge page pool via nr_hugepages such that
136 it becomes less than the number of huge pages in use will convert the balance
137 of the in-use huge pages to surplus huge pages. This will occur even if
140 increased sufficiently, or the surplus huge pages go out of use and are freed--
141 no more surplus huge pages will be allowed to be allocated.
143 With support for multiple huge page pools at run-time available, much of
144 the huge page userspace interface in /proc/sys/vm has been duplicated in sysfs.
146 compatibility. The root huge page control directory in sysfs is:
150 For each huge page size supported by the running kernel, a subdirectory
164 which function as described above for the default huge page-sized case.
170 Whether huge pages are allocated and freed via the /proc interface or
172 nodes from which huge pages are allocated or freed are controlled by the
177 The recommended method to allocate or free huge pages to/from the kernel
178 huge page pool, using the nr_hugepages example above, is:
188 specified in <node-list>, depending on whether number of persistent huge pages
189 is initially less than or greater than 20, respectively. No huge pages will be
194 resulting effect on persistent huge page allocation is as follows:
197 persistent huge pages will be distributed across the node or nodes
200 memory for a huge page, the allocation will not "fallback" to the nearest
202 undesirable imbalance in the distribution of the huge page pool, or
203 possibly, allocation of persistent huge pages on nodes not allowed by
226 subset of the system nodes to allocate huge pages outside the cpuset
229 5) Boot-time huge page allocation attempts to distribute the requested number
230 of huge pages over all on-lines nodes with memory.
235 A subset of the contents of the root huge page control directory in sysfs,
241 Under this directory, the subdirectory for each supported huge page size
249 of free and surplus [overcommitted] huge pages, respectively, on the parent
252 The nr_hugepages attribute returns the total number of huge pages on the
253 specified node. When this attribute is written, the number of persistent huge
259 applied, from which node the huge page allocation will be attempted.
265 If the user applications are going to request huge pages using mmap system
271 min_size=<value>,nr_inodes=<value> none /mnt/huge
274 /mnt/huge. Any files created on /mnt/huge uses huge pages. The uid and gid
278 By default the value 0755 is picked. If the paltform supports multiple huge
279 page sizes, the pagesize option can be used to specify the huge page size and
281 the paltform's default huge page size and associated pool will be used. The
282 size option sets the maximum value of memory (huge pages) allowed for that
283 filesystem (/mnt/huge). The size option can be specified in bytes, or as a
284 percentage of the specified huge page pool (nr_hugepages). The size is
286 value of memory (huge pages) allowed for the filesystem. min_size can be
288 huge page pool. At mount time, the number of huge pages specified by
290 free huge pages available, the mount will fail. As huge pages are allocated
292 of allocated and reserved huge pages is always at least min_size. The option
293 nr_inodes sets the maximum number of inodes that /mnt/huge can use. If the
333 wide range of userspace tools to help with huge page usability, environment