All of lore.kernel.org
 help / color / mirror / Atom feed
From: Muchun Song <songmuchun@bytedance.com>
To: David Hildenbrand <david@redhat.com>
Cc: corbet@lwn.net, mike.kravetz@oracle.com,
	akpm@linux-foundation.org, mcgrof@kernel.org,
	keescook@chromium.org, yzaikin@google.com, osalvador@suse.de,
	masahiroy@kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	duanxiongchun@bytedance.com, smuchun@gmail.com
Subject: Re: [PATCH v10 2/4] mm: memory_hotplug: override memmap_on_memory when hugetlb_free_vmemmap=on
Date: Thu, 12 May 2022 21:59:37 +0800	[thread overview]
Message-ID: <Yn0SyaqfS2YZ8kO/@FVFYT0MHHV2J.usts.net> (raw)
In-Reply-To: <284eec3f-a79d-c5f0-3cd6-53b8e64100cd@redhat.com>

On Thu, May 12, 2022 at 03:04:57PM +0200, David Hildenbrand wrote:
> On 12.05.22 14:50, Muchun Song wrote:
> > On Thu, May 12, 2022 at 09:36:15AM +0200, David Hildenbrand wrote:
> >> On 09.05.22 08:27, Muchun Song wrote:
> >>> Optimizing HugeTLB vmemmap pages is not compatible with allocating memmap on
> >>> hot added memory. If "hugetlb_free_vmemmap=on" and
> >>> memory_hotplug.memmap_on_memory" are both passed on the kernel command line,
> >>> optimizing hugetlb pages takes precedence. 
> >>
> >> Why?
> >>
> > 
> > Because both two features are not compatible since hugetlb_free_vmemmap cannot
> > optimize the vmemmap pages allocated from alternative allocator (when
> > memory_hotplug.memmap_on_memory=1). So when the feature of hugetlb_free_vmemmap
> > is introduced, I made hugetlb_free_vmemmap take precedence.  BTW, I have a plan
> > to remove this restriction, I'll post it out ASAP.
> 
> I was asking why vmemmap optimization should take precedence.
> memmap_on_memory makes it more likely to succeed memory hotplug in
> close-to-OOM situations -- which is IMHO more important than a vmemmap
> optimization.
>

I thought the users who enable hugetlb_free_vmemmap value memory
savings more, so I made a decision in commit 4bab4964a59f.  Seems
I made a bad decision from your description.
 
> But anyhow, the proper approach should most probably be to simply not
> mess with the vmemmap if we stumble over a vmemmap that's special due to
> memmap_on_memory. I assume that's what you're talking about sending out.
>

I mean I want to have hugetlb_vmemmap.c do the check whether the section
which the HugeTLB pages belong to can be optimized instead of making
hugetlb_free_vmemmap take precedence.  E.g. If the section's vmemmap pages
are allocated from the added memory block itself, hugetlb_free_vmemmap will
refuse to optimize the vmemmap, otherwise, do the optimization.  Then
both kernel parameters are compatible.  I have done those patches, but
haven't send them out.

Thanks.


  reply	other threads:[~2022-05-12 14:00 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-09  6:26 [PATCH v10 0/4] add hugetlb_optimize_vmemmap sysctl Muchun Song
2022-05-09  6:27 ` [PATCH v10 1/4] mm: hugetlb_vmemmap: disable hugetlb_optimize_vmemmap when struct page crosses page boundaries Muchun Song
2022-05-12  7:35   ` David Hildenbrand
2022-05-09  6:27 ` [PATCH v10 2/4] mm: memory_hotplug: override memmap_on_memory when hugetlb_free_vmemmap=on Muchun Song
2022-05-12  7:36   ` David Hildenbrand
2022-05-12 12:50     ` Muchun Song
2022-05-12 13:04       ` David Hildenbrand
2022-05-12 13:59         ` Muchun Song [this message]
2022-05-12 16:38           ` David Hildenbrand
2022-05-09  6:27 ` [PATCH v10 3/4] mm: hugetlb_vmemmap: use kstrtobool for hugetlb_vmemmap param parsing Muchun Song
2022-05-12  7:41   ` David Hildenbrand
2022-05-12 11:23     ` Muchun Song
2022-05-09  6:27 ` [PATCH v10 4/4] mm: hugetlb_vmemmap: add hugetlb_optimize_vmemmap sysctl Muchun Song
2022-05-10 21:30   ` Mike Kravetz
2022-05-11  0:39     ` Mike Kravetz
2022-05-11  9:45       ` Muchun Song
2022-05-11 10:57         ` Muchun Song
2022-05-11 17:53           ` Mike Kravetz
2022-05-12  3:34             ` Muchun Song

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Yn0SyaqfS2YZ8kO/@FVFYT0MHHV2J.usts.net \
    --to=songmuchun@bytedance.com \
    --cc=akpm@linux-foundation.org \
    --cc=corbet@lwn.net \
    --cc=david@redhat.com \
    --cc=duanxiongchun@bytedance.com \
    --cc=keescook@chromium.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=masahiroy@kernel.org \
    --cc=mcgrof@kernel.org \
    --cc=mike.kravetz@oracle.com \
    --cc=osalvador@suse.de \
    --cc=smuchun@gmail.com \
    --cc=yzaikin@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.