aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/vm/hugetlbpage.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/vm/hugetlbpage.txt')
-rw-r--r--Documentation/vm/hugetlbpage.txt25
1 files changed, 13 insertions, 12 deletions
diff --git a/Documentation/vm/hugetlbpage.txt b/Documentation/vm/hugetlbpage.txt
index 1b9bcd1fe98b..1ad9af1ca4d0 100644
--- a/Documentation/vm/hugetlbpage.txt
+++ b/Documentation/vm/hugetlbpage.txt
@@ -13,12 +13,13 @@ This optimization is more critical now as bigger and bigger physical memories
13Users can use the huge page support in Linux kernel by either using the mmap 13Users can use the huge page support in Linux kernel by either using the mmap
14system call or standard SYSv shared memory system calls (shmget, shmat). 14system call or standard SYSv shared memory system calls (shmget, shmat).
15 15
16First the Linux kernel needs to be built with CONFIG_HUGETLB_PAGE (present 16First the Linux kernel needs to be built with the CONFIG_HUGETLBFS
17under Processor types and feature) and CONFIG_HUGETLBFS (present under file 17(present under "File systems") and CONFIG_HUGETLB_PAGE (selected
18system option on config menu) config options. 18automatically when CONFIG_HUGETLBFS is selected) configuration
19options.
19 20
20The kernel built with hugepage support should show the number of configured 21The kernel built with hugepage support should show the number of configured
21hugepages in the system by running the "cat /proc/meminfo" command. 22hugepages in the system by running the "cat /proc/meminfo" command.
22 23
23/proc/meminfo also provides information about the total number of hugetlb 24/proc/meminfo also provides information about the total number of hugetlb
24pages configured in the kernel. It also displays information about the 25pages configured in the kernel. It also displays information about the
@@ -38,19 +39,19 @@ in the kernel.
38 39
39/proc/sys/vm/nr_hugepages indicates the current number of configured hugetlb 40/proc/sys/vm/nr_hugepages indicates the current number of configured hugetlb
40pages in the kernel. Super user can dynamically request more (or free some 41pages in the kernel. Super user can dynamically request more (or free some
41pre-configured) hugepages. 42pre-configured) hugepages.
42The allocation( or deallocation) of hugetlb pages is posible only if there are 43The allocation (or deallocation) of hugetlb pages is possible only if there are
43enough physically contiguous free pages in system (freeing of hugepages is 44enough physically contiguous free pages in system (freeing of hugepages is
44possible only if there are enough hugetlb pages free that can be transfered 45possible only if there are enough hugetlb pages free that can be transfered
45back to regular memory pool). 46back to regular memory pool).
46 47
47Pages that are used as hugetlb pages are reserved inside the kernel and can 48Pages that are used as hugetlb pages are reserved inside the kernel and can
48not be used for other purposes. 49not be used for other purposes.
49 50
50Once the kernel with Hugetlb page support is built and running, a user can 51Once the kernel with Hugetlb page support is built and running, a user can
51use either the mmap system call or shared memory system calls to start using 52use either the mmap system call or shared memory system calls to start using
52the huge pages. It is required that the system administrator preallocate 53the huge pages. It is required that the system administrator preallocate
53enough memory for huge page purposes. 54enough memory for huge page purposes.
54 55
55Use the following command to dynamically allocate/deallocate hugepages: 56Use the following command to dynamically allocate/deallocate hugepages:
56 57
@@ -80,9 +81,9 @@ memory (huge pages) allowed for that filesystem (/mnt/huge). The size is
80rounded down to HPAGE_SIZE. The option nr_inode sets the maximum number of 81rounded down to HPAGE_SIZE. The option nr_inode sets the maximum number of
81inodes that /mnt/huge can use. If the size or nr_inode options are not 82inodes that /mnt/huge can use. If the size or nr_inode options are not
82provided on command line then no limits are set. For size and nr_inodes 83provided on command line then no limits are set. For size and nr_inodes
83options, you can use [G|g]/[M|m]/[K|k] to represent giga/mega/kilo. For 84options, you can use [G|g]/[M|m]/[K|k] to represent giga/mega/kilo. For
84example, size=2K has the same meaning as size=2048. An example is given at 85example, size=2K has the same meaning as size=2048. An example is given at
85the end of this document. 86the end of this document.
86 87
87read and write system calls are not supported on files that reside on hugetlb 88read and write system calls are not supported on files that reside on hugetlb
88file systems. 89file systems.