On Thu, Mar 3, 2022 at 5:25 AM Luis Chamberlain <mcgrof@xxxxxxxxxx> wrote: > > On Wed, Mar 02, 2022 at 04:37:58PM +0800, Muchun Song wrote: > > We must add "hugetlb_free_vmemmap=on" to boot cmdline and reboot the > > server to enable the feature of freeing vmemmap pages of HugeTLB > > pages. Rebooting usually taske a long time. Add a sysctl to enable > > the feature at runtime and do not need to reboot. > > > > Signed-off-by: Muchun Song <songmuchun@xxxxxxxxxxxxx> > > --- > > Documentation/admin-guide/sysctl/vm.rst | 13 ++++++++++ > > include/linux/memory_hotplug.h | 9 +++++++ > > mm/hugetlb_vmemmap.c | 42 ++++++++++++++++++++++++++++----- > > mm/hugetlb_vmemmap.h | 4 +++- > > mm/memory_hotplug.c | 5 ++++ > > 5 files changed, 66 insertions(+), 7 deletions(-) > > > > diff --git a/Documentation/admin-guide/sysctl/vm.rst b/Documentation/admin-guide/sysctl/vm.rst > > index f4804ce37c58..01f18e6cc227 100644 > > --- a/Documentation/admin-guide/sysctl/vm.rst > > +++ b/Documentation/admin-guide/sysctl/vm.rst > > @@ -561,6 +561,19 @@ Change the minimum size of the hugepage pool. > > See Documentation/admin-guide/mm/hugetlbpage.rst > > > > > > +hugetlb_free_vmemmap > > +==================== > > + > > +A toggle value indicating if vmemmap pages are allowed to be optimized. > > +If it is off (0), then it can be set true (1). Once true, the vmemmap > > +pages associated with each HugeTLB page will be optimized, and the toggle > > +cannot be set back to false. It only optimizes the subsequent allocation > > +of HugeTLB pages from buddy system, while already allocated HugeTLB pages > > +will not be optimized. > > The commit log or documentation does not descrie why its safe to toggle > one way and not the other? > I thought it was easy to handle the transition from disable to enable (code is simple). I might be wrong. I'll try to handle the other side in the next version if it is not hard to handle. Thanks Luis.