On 8/16/21 4:28 PM, Andrew Morton wrote: > On Mon, 16 Aug 2021 15:49:50 -0700 Mike Kravetz <mike.kravetz@xxxxxxxxxx> wrote: > >> Describe demote and demote_size interfaces. >> >> Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx> >> --- >> 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