From: Lance Yang <lance.yang@linux.dev>
To: "David Hildenbrand (Arm)" <david@kernel.org>, npache@redhat.com
Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, linux-trace-kernel@vger.kernel.org,
aarcange@redhat.com, akpm@linux-foundation.org,
anshuman.khandual@arm.com, apopple@nvidia.com, baohua@kernel.org,
baolin.wang@linux.alibaba.com, byungchul@sk.com,
catalin.marinas@arm.com, cl@gentwo.org, corbet@lwn.net,
dave.hansen@linux.intel.com, dev.jain@arm.com, gourry@gourry.net,
hannes@cmpxchg.org, hughd@google.com, jack@suse.cz,
jackmanb@google.com, jannh@google.com, jglisse@google.com,
joshua.hahnjy@gmail.com, kas@kernel.org, liam@infradead.org,
ljs@kernel.org, mathieu.desnoyers@efficios.com,
matthew.brost@intel.com, mhiramat@kernel.org, mhocko@suse.com,
peterx@redhat.com, pfalcato@suse.de, rakie.kim@sk.com,
raquini@redhat.com, rdunlap@infradead.org,
richard.weiyang@gmail.com, rientjes@google.com,
rostedt@goodmis.org, rppt@kernel.org, ryan.roberts@arm.com,
shivankg@amd.com, sunnanyong@huawei.com, surenb@google.com,
thomas.hellstrom@linux.intel.com, tiwai@suse.de,
usamaarif642@gmail.com, vbabka@suse.cz, vishal.moola@gmail.com,
wangkefeng.wang@huawei.com, will@kernel.org, willy@infradead.org,
yang@os.amperecomputing.com, ying.huang@linux.alibaba.com,
ziy@nvidia.com, zokeefe@google.com, usama.arif@linux.dev
Subject: Re: [PATCH mm-unstable v18 12/14] mm/khugepaged: avoid unnecessary mTHP collapse attempts
Date: Mon, 1 Jun 2026 09:53:28 +0800 [thread overview]
Message-ID: <bb855309-422b-418d-ae34-54969e01375f@linux.dev> (raw)
In-Reply-To: <65e201dd-10d6-43f6-8758-0fc313158fe7@kernel.org>
On 2026/6/1 04:02, David Hildenbrand (Arm) wrote:
> On 5/31/26 09:31, Lance Yang wrote:
>>
>> On Fri, May 22, 2026 at 09:00:07AM -0600, Nico Pache wrote:
>>> There are cases where, if an attempted collapse fails, all subsequent
>>> orders are guaranteed to also fail. Avoid these collapse attempts by
>>> bailing out early.
>>>
>>> Reviewed-by: Lorenzo Stoakes <ljs@kernel.org>
>>> Acked-by: Usama Arif <usama.arif@linux.dev>
>>> Acked-by: David Hildenbrand (Arm) <david@kernel.org>
>>> Signed-off-by: Nico Pache <npache@redhat.com>
>>> ---
>>> mm/khugepaged.c | 24 +++++++++++++++++++++++-
>>> 1 file changed, 23 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/mm/khugepaged.c b/mm/khugepaged.c
>>> index d3d7db8be26c..15b7298bc225 100644
>>> --- a/mm/khugepaged.c
>>> +++ b/mm/khugepaged.c
>>> @@ -1535,9 +1535,31 @@ static int mthp_collapse(struct mm_struct *mm, struct vm_area_struct *vma,
>>> collapse_address = address + offset * PAGE_SIZE;
>>> ret = collapse_huge_page(mm, collapse_address, referenced,
>>> unmapped, cc, order);
>>> - if (ret == SCAN_SUCCEED) {
>>> +
>>> + switch (ret) {
>>> + /* Cases where we continue to next collapse candidate */
>>> + case SCAN_SUCCEED:
>>> collapsed += nr_ptes;
>>> + fallthrough;
>>> + case SCAN_PTE_MAPPED_HUGEPAGE:
>>> continue;
>>> + /* Cases where lower orders might still succeed */
>>> + case SCAN_LACK_REFERENCED_PAGE:
>>> + case SCAN_EXCEED_NONE_PTE:
>>> + case SCAN_EXCEED_SWAP_PTE:
>>> + case SCAN_EXCEED_SHARED_PTE:
>>> + case SCAN_PAGE_LOCK:
>>> + case SCAN_PAGE_COUNT:
>>> + case SCAN_PAGE_NULL:
>>> + case SCAN_DEL_PAGE_LRU:
>>> + case SCAN_PTE_NON_PRESENT:
>>> + case SCAN_PTE_UFFD_WP:
>>> + case SCAN_ALLOC_HUGE_PAGE_FAIL:
>>
>> Nit: shouldn't SCAN_CGROUP_CHARGE_FAIL go with SCAN_ALLOC_HUGE_PAGE_FAIL
>> here?
>>
>> If charging the current order fails, a smaller order might still fit :)
>
> I think the reasoning was here, that if we are already that close to our mem
> limit, we should just give up instead of trying to squeeze it in .. :)
Fair point. Just a nit, nevermind :)
next prev parent reply other threads:[~2026-06-01 1:55 UTC|newest]
Thread overview: 144+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-22 14:59 [PATCH mm-hotfixes-unstable v18 00/14] khugepaged: add mTHP collapse support Nico Pache
2026-05-22 14:59 ` [PATCH mm-unstable v18 01/14] mm/khugepaged: generalize hugepage_vma_revalidate for mTHP support Nico Pache
2026-05-22 14:59 ` [PATCH mm-unstable v18 02/14] mm/khugepaged: generalize alloc_charge_folio() Nico Pache
2026-05-22 14:59 ` [PATCH mm-unstable v18 03/14] mm/khugepaged: rework max_ptes_* handling with helper functions Nico Pache
2026-05-22 21:16 ` David Hildenbrand (Arm)
2026-06-01 13:26 ` Lorenzo Stoakes
2026-06-05 16:04 ` Zi Yan
2026-05-22 14:59 ` [PATCH mm-unstable v18 04/14] mm/khugepaged: generalize __collapse_huge_page_* for mTHP support Nico Pache
2026-05-22 21:24 ` David Hildenbrand (Arm)
2026-05-26 14:39 ` Nico Pache
2026-06-01 14:04 ` Lorenzo Stoakes
2026-05-22 15:00 ` [PATCH mm-unstable v18 05/14] mm/khugepaged: require collapse_huge_page to enter/exit with the lock dropped Nico Pache
2026-06-01 14:07 ` Lorenzo Stoakes
2026-06-02 10:26 ` Nico Pache
2026-05-22 15:00 ` [PATCH mm-unstable v18 06/14] mm/khugepaged: generalize collapse_huge_page for mTHP collapse Nico Pache
2026-05-22 21:47 ` David Hildenbrand (Arm)
2026-05-26 14:42 ` Nico Pache
2026-05-31 9:39 ` Lance Yang
2026-05-31 20:00 ` David Hildenbrand (Arm)
2026-06-01 3:28 ` Lance Yang
2026-06-01 6:54 ` David Hildenbrand (Arm)
2026-06-01 7:49 ` Lance Yang
2026-06-01 8:15 ` David Hildenbrand (Arm)
2026-06-01 8:44 ` Lance Yang
2026-06-01 10:09 ` David Hildenbrand (Arm)
2026-06-01 9:08 ` Lance Yang
2026-06-01 10:23 ` David Hildenbrand (Arm)
2026-06-01 10:47 ` Lance Yang
2026-06-01 11:13 ` David Hildenbrand (Arm)
2026-06-01 15:00 ` Nico Pache
2026-06-01 15:05 ` David Hildenbrand (Arm)
2026-06-01 16:07 ` Lance Yang
2026-06-04 17:04 ` Nico Pache
2026-06-04 18:12 ` Lorenzo Stoakes
2026-06-05 7:18 ` David Hildenbrand (Arm)
2026-06-05 8:07 ` Lorenzo Stoakes
2026-06-05 8:59 ` Lance Yang
2026-06-02 15:30 ` Nico Pache
2026-06-02 16:34 ` Lance Yang
2026-06-04 12:33 ` Lorenzo Stoakes
2026-06-04 10:21 ` Lorenzo Stoakes
2026-06-04 10:32 ` Nico Pache
2026-06-04 11:38 ` Lorenzo Stoakes
2026-06-04 12:39 ` Lorenzo Stoakes
2026-06-04 12:45 ` Nico Pache
2026-06-04 12:55 ` Lorenzo Stoakes
2026-06-04 16:28 ` Nico Pache
2026-05-22 15:00 ` [PATCH mm-unstable v18 07/14] mm/khugepaged: skip collapsing mTHP to smaller orders Nico Pache
2026-05-22 21:51 ` David Hildenbrand (Arm)
2026-05-22 15:00 ` [PATCH mm-unstable v18 08/14] mm/khugepaged: add per-order mTHP collapse failure statistics Nico Pache
2026-05-31 20:09 ` David Hildenbrand (Arm)
2026-06-01 14:13 ` Lorenzo Stoakes
2026-05-22 15:00 ` [PATCH mm-unstable v18 09/14] mm/khugepaged: improve tracepoints for mTHP orders Nico Pache
2026-05-22 15:00 ` [PATCH mm-unstable v18 10/14] mm/khugepaged: introduce collapse_allowable_orders helper function Nico Pache
2026-05-31 20:18 ` David Hildenbrand (Arm)
2026-06-01 14:35 ` Lorenzo Stoakes
2026-06-01 14:40 ` David Hildenbrand (Arm)
2026-05-22 15:00 ` [PATCH mm-unstable v18 11/14] mm/khugepaged: Introduce mTHP collapse support Nico Pache
2026-05-25 14:15 ` Nico Pache
2026-05-25 19:10 ` Andrew Morton
2026-05-26 6:57 ` Wei Yang
2026-05-26 12:07 ` Nico Pache
2026-05-28 8:42 ` Wei Yang
2026-05-28 17:11 ` Nico Pache
2026-05-31 7:18 ` Lance Yang
2026-05-31 8:48 ` Lance Yang
2026-06-01 12:01 ` Nico Pache
2026-06-01 12:06 ` David Hildenbrand (Arm)
2026-06-02 10:58 ` Nico Pache
2026-06-02 15:44 ` Lance Yang
2026-06-03 8:05 ` David Hildenbrand (Arm)
2026-06-04 14:40 ` Lorenzo Stoakes
2026-06-01 8:11 ` David Hildenbrand (Arm)
2026-06-01 12:40 ` Nico Pache
2026-06-01 13:15 ` David Hildenbrand (Arm)
2026-06-02 17:23 ` Nico Pache
2026-06-02 17:26 ` Nico Pache
2026-06-03 9:55 ` David Hildenbrand (Arm)
2026-06-03 10:00 ` David Hildenbrand (Arm)
2026-06-03 12:16 ` Nico Pache
2026-06-03 12:27 ` David Hildenbrand (Arm)
2026-06-04 14:14 ` Lorenzo Stoakes
2026-06-04 14:19 ` Lorenzo Stoakes
2026-06-04 13:53 ` Lorenzo Stoakes
2026-06-04 13:59 ` Lorenzo Stoakes
2026-06-04 14:45 ` Lorenzo Stoakes
2026-06-05 11:07 ` Nico Pache
2026-06-05 11:08 ` Nico Pache
2026-05-22 15:00 ` [PATCH mm-unstable v18 12/14] mm/khugepaged: avoid unnecessary mTHP collapse attempts Nico Pache
2026-05-31 7:31 ` Lance Yang
2026-05-31 20:02 ` David Hildenbrand (Arm)
2026-06-01 1:53 ` Lance Yang [this message]
2026-05-22 15:00 ` [PATCH mm-unstable v18 13/14] mm/khugepaged: run khugepaged for all orders Nico Pache
2026-05-22 15:00 ` [PATCH mm-unstable v18 14/14] Documentation: mm: update the admin guide for mTHP collapse Nico Pache
2026-05-22 21:58 ` David Hildenbrand (Arm)
2026-05-26 12:00 ` Nico Pache
2026-05-26 14:45 ` Nico Pache
2026-05-22 15:07 ` [PATCH mm-hotfixes-unstable v18 00/14] khugepaged: add mTHP collapse support Nico Pache
2026-05-22 15:13 ` Vlastimil Babka (SUSE)
2026-05-22 16:11 ` Nico Pache
2026-05-22 21:13 ` David Hildenbrand (Arm)
2026-05-26 8:33 ` Process (was Re: [PATCH mm-hotfixes-unstable v18 00/14] khugepaged: add mTHP) " Lorenzo Stoakes
2026-05-26 19:09 ` Andrew Morton
2026-05-26 20:42 ` Vlastimil Babka (SUSE)
2026-05-31 19:49 ` David Hildenbrand (Arm)
2026-06-01 15:41 ` Lorenzo Stoakes
2026-06-01 15:45 ` David Hildenbrand (Arm)
2026-06-01 16:16 ` Lorenzo Stoakes
2026-06-02 11:20 ` David Hildenbrand (Arm)
2026-06-02 11:31 ` David Hildenbrand (Arm)
2026-06-02 12:47 ` Lorenzo Stoakes
2026-06-02 12:55 ` Vlastimil Babka (SUSE)
2026-06-02 13:01 ` David Hildenbrand (Arm)
2026-06-02 17:31 ` Mike Rapoport
2026-06-03 6:48 ` Lorenzo Stoakes
2026-06-03 8:39 ` Mike Rapoport
2026-06-03 9:57 ` Mark Brown
2026-06-03 10:51 ` Mike Rapoport
2026-06-03 9:03 ` Mark Brown
2026-06-02 12:40 ` Lorenzo Stoakes
2026-06-02 12:49 ` David Hildenbrand (Arm)
2026-06-02 12:47 ` Vlastimil Babka (SUSE)
2026-06-02 12:58 ` David Hildenbrand (Arm)
2026-06-02 13:08 ` Vlastimil Babka (SUSE)
2026-06-02 13:16 ` David Hildenbrand (Arm)
2026-06-03 1:48 ` SeongJae Park
2026-06-05 15:24 ` David Hildenbrand (Arm)
2026-06-01 15:37 ` Lorenzo Stoakes
2026-06-01 15:43 ` David Hildenbrand (Arm)
2026-06-01 15:47 ` Lorenzo Stoakes
2026-06-01 16:00 ` David Hildenbrand (Arm)
2026-05-22 15:16 ` [PATCH mm-hotfixes-unstable v18 00/14] khugepaged: add mTHP " Lorenzo Stoakes
2026-05-22 16:08 ` Nico Pache
2026-05-22 16:19 ` Lorenzo Stoakes
2026-05-22 16:31 ` Nico Pache
2026-05-22 17:12 ` Lorenzo Stoakes
2026-05-26 8:14 ` Lorenzo Stoakes
2026-05-22 15:13 ` Lorenzo Stoakes
2026-05-22 20:47 ` Andrew Morton
2026-06-01 15:58 ` Alexander Gordeev
2026-06-01 17:05 ` Nico Pache
2026-06-01 17:08 ` Lorenzo Stoakes
2026-06-02 1:53 ` Lance Yang
2026-06-04 10:10 ` Lorenzo Stoakes
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=bb855309-422b-418d-ae34-54969e01375f@linux.dev \
--to=lance.yang@linux.dev \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=anshuman.khandual@arm.com \
--cc=apopple@nvidia.com \
--cc=baohua@kernel.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=byungchul@sk.com \
--cc=catalin.marinas@arm.com \
--cc=cl@gentwo.org \
--cc=corbet@lwn.net \
--cc=dave.hansen@linux.intel.com \
--cc=david@kernel.org \
--cc=dev.jain@arm.com \
--cc=gourry@gourry.net \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=jack@suse.cz \
--cc=jackmanb@google.com \
--cc=jannh@google.com \
--cc=jglisse@google.com \
--cc=joshua.hahnjy@gmail.com \
--cc=kas@kernel.org \
--cc=liam@infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=ljs@kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=matthew.brost@intel.com \
--cc=mhiramat@kernel.org \
--cc=mhocko@suse.com \
--cc=npache@redhat.com \
--cc=peterx@redhat.com \
--cc=pfalcato@suse.de \
--cc=rakie.kim@sk.com \
--cc=raquini@redhat.com \
--cc=rdunlap@infradead.org \
--cc=richard.weiyang@gmail.com \
--cc=rientjes@google.com \
--cc=rostedt@goodmis.org \
--cc=rppt@kernel.org \
--cc=ryan.roberts@arm.com \
--cc=shivankg@amd.com \
--cc=sunnanyong@huawei.com \
--cc=surenb@google.com \
--cc=thomas.hellstrom@linux.intel.com \
--cc=tiwai@suse.de \
--cc=usama.arif@linux.dev \
--cc=usamaarif642@gmail.com \
--cc=vbabka@suse.cz \
--cc=vishal.moola@gmail.com \
--cc=wangkefeng.wang@huawei.com \
--cc=will@kernel.org \
--cc=willy@infradead.org \
--cc=yang@os.amperecomputing.com \
--cc=ying.huang@linux.alibaba.com \
--cc=ziy@nvidia.com \
--cc=zokeefe@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.