Re: [PATCH 5/8] hugetlb: document the demote sysfs interfaces
From: Mike Kravetz <hidden>
Date: 2021-08-17 01:05:11
Also in:
lkml
On 8/16/21 4:28 PM, Andrew Morton wrote:
On Mon, 16 Aug 2021 15:49:50 -0700 Mike Kravetz [off-list ref] wrote:quoted
Describe demote and demote_size interfaces. Signed-off-by: Mike Kravetz <redacted> --- Documentation/admin-guide/mm/hugetlbpage.rst | 29 ++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-)diff --git a/Documentation/admin-guide/mm/hugetlbpage.rst b/Documentation/admin-guide/mm/hugetlbpage.rst index 8abaeb144e44..902059a0257b 100644 --- a/Documentation/admin-guide/mm/hugetlbpage.rst +++ b/Documentation/admin-guide/mm/hugetlbpage.rst@@ -234,8 +234,12 @@ will exist, of the form:: hugepages-${size}kB -Inside each of these directories, the same set of files will exist:: +Inside each of these directories, the set of files contained in ``/proc`` +will exist. In addition, two additional interfaces for demoting huge +pages will exist:: + demote + demote_size nr_hugepages nr_hugepages_mempolicy nr_overcommit_hugepages@@ -243,7 +247,28 @@ Inside each of these directories, the same set of files will exist:: resv_hugepages surplus_hugepages -which function as described above for the default huge page-sized case. +The demote interfaces provide the ability to split a huge page into +smaller huge pages. For example, the x86 architecture supports both +1GB and 2MB huge pages sizes. A 1GB huge page can be split into 512 +2MB huge pages. The demote interfaces are: + +demote_size + is the size of demoted pages. When a page is demoted a corresponding + number of huge pages of demote_size will be created. For huge pages + of the smallest supported size (2MB on x86), demote_size will be the + system page size (PAGE_SIZE). If demote_size is the system page size + then demoting a page will simply free the huge page. demote_size is + a read only interface. + +demote + is used to demote a number of huge pages. A user with root privileges + can write to this file. It may not be possible to demote the + requested number of huge pages. To determine how many pages were + actually demoted, compare the value of nr_hugepages before and after + writing to the demote interface. demote is a write only interface. + +The interfaces which are the same as in ``/proc`` function as described +above for the default huge page-sized case.Are these new demote interfaces duplicated in /proc? Documentation/admin-guide/mm/hugetlbpage.rst says "The ``/proc`` interfaces discussed above have been retained for backwards compatibility.", so new interfaces need not appear in /proc?
The new demote interfaces are only in sysfs, they are not /proc. -- Mike Kravetz