|
@@ -27,7 +27,7 @@ number of free hugetlb pages at any time. It also displays information about
|
|
the configured hugepage size - this is needed for generating the proper
|
|
the configured hugepage size - this is needed for generating the proper
|
|
alignment and size of the arguments to the above system calls.
|
|
alignment and size of the arguments to the above system calls.
|
|
|
|
|
|
-The output of "cat /proc/meminfo" will have output like:
|
|
|
|
|
|
+The output of "cat /proc/meminfo" will have lines like:
|
|
|
|
|
|
.....
|
|
.....
|
|
HugePages_Total: xxx
|
|
HugePages_Total: xxx
|
|
@@ -42,11 +42,11 @@ pages in the kernel. Super user can dynamically request more (or free some
|
|
pre-configured) hugepages.
|
|
pre-configured) hugepages.
|
|
The allocation (or deallocation) of hugetlb pages is possible only if there are
|
|
The allocation (or deallocation) of hugetlb pages is possible only if there are
|
|
enough physically contiguous free pages in system (freeing of hugepages is
|
|
enough physically contiguous free pages in system (freeing of hugepages is
|
|
-possible only if there are enough hugetlb pages free that can be transfered
|
|
|
|
|
|
+possible only if there are enough hugetlb pages free that can be transferred
|
|
back to regular memory pool).
|
|
back to regular memory pool).
|
|
|
|
|
|
-Pages that are used as hugetlb pages are reserved inside the kernel and can
|
|
|
|
-not be used for other purposes.
|
|
|
|
|
|
+Pages that are used as hugetlb pages are reserved inside the kernel and cannot
|
|
|
|
+be used for other purposes.
|
|
|
|
|
|
Once the kernel with Hugetlb page support is built and running, a user can
|
|
Once the kernel with Hugetlb page support is built and running, a user can
|
|
use either the mmap system call or shared memory system calls to start using
|
|
use either the mmap system call or shared memory system calls to start using
|
|
@@ -60,7 +60,7 @@ Use the following command to dynamically allocate/deallocate hugepages:
|
|
This command will try to configure 20 hugepages in the system. The success
|
|
This command will try to configure 20 hugepages in the system. The success
|
|
or failure of allocation depends on the amount of physically contiguous
|
|
or failure of allocation depends on the amount of physically contiguous
|
|
memory that is preset in system at this time. System administrators may want
|
|
memory that is preset in system at this time. System administrators may want
|
|
-to put this command in one of the local rc init file. This will enable the
|
|
|
|
|
|
+to put this command in one of the local rc init files. This will enable the
|
|
kernel to request huge pages early in the boot process (when the possibility
|
|
kernel to request huge pages early in the boot process (when the possibility
|
|
of getting physical contiguous pages is still very high).
|
|
of getting physical contiguous pages is still very high).
|
|
|
|
|
|
@@ -78,8 +78,8 @@ the uid and gid of the current process are taken. The mode option sets the
|
|
mode of root of file system to value & 0777. This value is given in octal.
|
|
mode of root of file system to value & 0777. This value is given in octal.
|
|
By default the value 0755 is picked. The size option sets the maximum value of
|
|
By default the value 0755 is picked. The size option sets the maximum value of
|
|
memory (huge pages) allowed for that filesystem (/mnt/huge). The size is
|
|
memory (huge pages) allowed for that filesystem (/mnt/huge). The size is
|
|
-rounded down to HPAGE_SIZE. The option nr_inode sets the maximum number of
|
|
|
|
-inodes that /mnt/huge can use. If the size or nr_inode options are not
|
|
|
|
|
|
+rounded down to HPAGE_SIZE. The option nr_inodes sets the maximum number of
|
|
|
|
+inodes that /mnt/huge can use. If the size or nr_inodes options are not
|
|
provided on command line then no limits are set. For size and nr_inodes
|
|
provided on command line then no limits are set. For size and nr_inodes
|
|
options, you can use [G|g]/[M|m]/[K|k] to represent giga/mega/kilo. For
|
|
options, you can use [G|g]/[M|m]/[K|k] to represent giga/mega/kilo. For
|
|
example, size=2K has the same meaning as size=2048. An example is given at
|
|
example, size=2K has the same meaning as size=2048. An example is given at
|
|
@@ -88,7 +88,7 @@ the end of this document.
|
|
read and write system calls are not supported on files that reside on hugetlb
|
|
read and write system calls are not supported on files that reside on hugetlb
|
|
file systems.
|
|
file systems.
|
|
|
|
|
|
-A regular chown, chgrp and chmod commands (with right permissions) could be
|
|
|
|
|
|
+Regular chown, chgrp, and chmod commands (with right permissions) could be
|
|
used to change the file attributes on hugetlbfs.
|
|
used to change the file attributes on hugetlbfs.
|
|
|
|
|
|
Also, it is important to note that no such mount command is required if the
|
|
Also, it is important to note that no such mount command is required if the
|
|
@@ -96,8 +96,8 @@ applications are going to use only shmat/shmget system calls. Users who
|
|
wish to use hugetlb page via shared memory segment should be a member of
|
|
wish to use hugetlb page via shared memory segment should be a member of
|
|
a supplementary group and system admin needs to configure that gid into
|
|
a supplementary group and system admin needs to configure that gid into
|
|
/proc/sys/vm/hugetlb_shm_group. It is possible for same or different
|
|
/proc/sys/vm/hugetlb_shm_group. It is possible for same or different
|
|
-applications to use any combination of mmaps and shm* calls. Though the
|
|
|
|
-mount of filesystem will be required for using mmaps.
|
|
|
|
|
|
+applications to use any combination of mmaps and shm* calls, though the
|
|
|
|
+mount of filesystem will be required for using mmap calls.
|
|
|
|
|
|
*******************************************************************
|
|
*******************************************************************
|
|
|
|
|