All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Gregory Price (Meta)" <gourry@gourry.net>, linux-mm@kvack.org
Cc: kernel-team@meta.com, linux-serial@vger.kernel.org,
	damon@lists.linux.dev, linux-cxl@vger.kernel.org,
	akpm@linux-foundation.org, david@kernel.org, liam@infradead.org,
	vbabka@kernel.org, rppt@kernel.org, surenb@google.com,
	mhocko@suse.com, corbet@lwn.net, skhan@linuxfoundation.org,
	rdunlap@infradead.org, gregkh@linuxfoundation.org,
	rafael@kernel.org, dakr@kernel.org, johan@kernel.org,
	jirislaby@kernel.org, kasong@tencent.com, qi.zheng@linux.dev,
	shakeel.butt@linux.dev, baohua@kernel.org,
	axelrasmussen@google.com, yuanchu@google.com, weixugc@google.com,
	baoquan.he@linux.dev, baolin.wang@linux.alibaba.com,
	yury.norov@gmail.com, linux@rasmusvillemoes.dk, pavel@kernel.org,
	lenb@kernel.org, hannes@cmpxchg.org, brendan.jackman@linux.dev,
	ziy@nvidia.com, sj@kernel.org, muchun.song@linux.dev,
	osalvador@suse.de, nico.pache@linux.dev, ryan.roberts@arm.com,
	dev.jain@arm.com, lance.yang@linux.dev, usama.arif@linux.dev,
	kas@kernel.org, xu.xin@linux.dev, chengming.zhou@linux.dev,
	joshua.hahnjy@ gmail.com, rakie.kim@sk.com,
	ying.huang@linux.alibaba.com, matthew.brost@intel.com,
	byungchul@sk.com, apopple@nvidia.com, rientjes@google.com
Subject: Re: [PATCH 10/22] mm/khugepaged: restrict collapse to common memory
Date: Sat, 14 Nov 2026 07:21:40 +0000	[thread overview]
Message-ID: <sashiko-outbox-214261@kernel.org> (raw)
In-Reply-To: <20261114070959.3490008-11-gourry@gourry.net>

Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [Medium] mm/khugepaged: missing folio_is_common_memory() check in
  collapse_file()
--

commit 5cdd71b37e4c9e4d2c7bf61d7c51d7ba89a07fb5
Author: Gregory Price (Meta) <gourry@gourry.net>

mm/khugepaged: restrict collapse to common memory

This commit replaces the zone_device checks in anonymous THP scan and
isolation paths with page_is_common_memory() and adds a
folio_is_common_memory() check to collapse_scan_file().

> diff --git a/mm/khugepaged.c b/mm/khugepaged.c
> index 4bbe319ef86fa..b4bd29f25c145 100644
> --- a/mm/khugepaged.c
> +++ b/mm/khugepaged.c

[ ... ]

> @@ -2741,6 +2741,12 @@ static enum scan_result collapse_scan_file(struct mm_struct *mm,
>  			break;
>  		}
>  
> +		if (unlikely(!folio_is_common_memory(folio))) {
> +			result = SCAN_PAGE_NULL;
> +			failed_pfn = folio_pfn(folio);
> +			folio_put(folio);
> +			break;
> +		}
>  		node = folio_nid(folio);
>  		if (collapse_scan_abort(node, cc)) {
>  			result = SCAN_SCAN_ABORT;

[Severity: Medium]
Should collapse_file() also check folio_is_common_memory(folio) after
locking each folio, matching __collapse_huge_page_isolate()?

collapse_scan_file() drops its folio reference on each iteration and
skips missing page-cache indices and swapped-out shmem entries, and
collapse_single_pmd() drops mmap_read_lock() before calling
collapse_pmd() -> collapse_file().  Folios that are faulted into holes,
migrated, or instantiated by shmem_get_folio() or
page_cache_sync_readahead() on a node outside N_MEMORY_COMMON after the
pre-scan will still be isolated and collapsed by collapse_file().

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261114070959.3490008-1-gourry@gourry.net?part=10

WARNING: multiple messages have this Message-ID (diff)
From: sashiko-bot@kernel.org
To: "Gregory Price (Meta)" <gourry@gourry.net>, linux-mm@kvack.org
Cc: kernel-team@meta.com, linux-serial@vger.kernel.org,
	damon@lists.linux.dev, linux-cxl@vger.kernel.org,
	akpm@linux-foundation.org, david@kernel.org, liam@infradead.org,
	vbabka@kernel.org, rppt@kernel.org, surenb@google.com,
	mhocko@suse.com, corbet@lwn.net, skhan@linuxfoundation.org,
	rdunlap@infradead.org, gregkh@linuxfoundation.org,
	rafael@kernel.org, dakr@kernel.org, johan@kernel.org,
	jirislaby@kernel.org, kasong@tencent.com, qi.zheng@linux.dev,
	shakeel.butt@linux.dev, baohua@kernel.org,
	axelrasmussen@google.com, yuanchu@google.com, weixugc@google.com,
	baoquan.he@linux.dev, baolin.wang@linux.alibaba.com,
	yury.norov@gmail.com, linux@rasmusvillemoes.dk, pavel@kernel.org,
	lenb@kernel.org, hannes@cmpxchg.org, brendan.jackman@linux.dev,
	ziy@nvidia.com, sj@kernel.org, muchun.song@linux.dev,
	osalvador@suse.de, nico.pache@linux.dev, ryan.roberts@arm.com,
	dev.jain@arm.com, lance.yang@linux.dev, usama.arif@linux.dev,
	kas@kernel.org, xu.xin@linux.dev, chengming.zhou@linux.dev,
	joshua .hahnjy@ gmail.com, rakie.kim@sk.com,
	ying.huang@linux.alibaba.com, matthew.brost@intel.com,
	byungchul@sk.com, apopple@nvidia.com, rientjes@google.com
Subject: Re: [PATCH 10/22] mm/khugepaged: restrict collapse to common memory
Date: Sat, 14 Nov 2026 07:21:40 +0000	[thread overview]
Message-ID: <sashiko-outbox-214261@kernel.org> (raw)
In-Reply-To: <20261114070959.3490008-11-gourry@gourry.net>

Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [Medium] mm/khugepaged: missing folio_is_common_memory() check in
  collapse_file()
--

commit 5cdd71b37e4c9e4d2c7bf61d7c51d7ba89a07fb5
Author: Gregory Price (Meta) <gourry@gourry.net>

mm/khugepaged: restrict collapse to common memory

This commit replaces the zone_device checks in anonymous THP scan and
isolation paths with page_is_common_memory() and adds a
folio_is_common_memory() check to collapse_scan_file().

> diff --git a/mm/khugepaged.c b/mm/khugepaged.c
> index 4bbe319ef86fa..b4bd29f25c145 100644
> --- a/mm/khugepaged.c
> +++ b/mm/khugepaged.c

[ ... ]

> @@ -2741,6 +2741,12 @@ static enum scan_result collapse_scan_file(struct mm_struct *mm,
>  			break;
>  		}
>  
> +		if (unlikely(!folio_is_common_memory(folio))) {
> +			result = SCAN_PAGE_NULL;
> +			failed_pfn = folio_pfn(folio);
> +			folio_put(folio);
> +			break;
> +		}
>  		node = folio_nid(folio);
>  		if (collapse_scan_abort(node, cc)) {
>  			result = SCAN_SCAN_ABORT;

[Severity: Medium]
Should collapse_file() also check folio_is_common_memory(folio) after
locking each folio, matching __collapse_huge_page_isolate()?

collapse_scan_file() drops its folio reference on each iteration and
skips missing page-cache indices and swapped-out shmem entries, and
collapse_single_pmd() drops mmap_read_lock() before calling
collapse_pmd() -> collapse_file().  Folios that are faulted into holes,
migrated, or instantiated by shmem_get_folio() or
page_cache_sync_readahead() on a node outside N_MEMORY_COMMON after the
pre-scan will still be isolated and collapsed by collapse_file().

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261114070959.3490008-1-gourry@gourry.net?part=10


  reply	other threads:[~2026-11-14  7:21 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-14  7:09 [PATCH 00/22] mm: introduce N_MEMORY_COMMON Gregory Price (Meta)
2026-11-14  7:09 ` [PATCH 01/22] mm: add node-state-filtered zone and node iterators Gregory Price (Meta)
2026-11-14  7:19   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 02/22] mm: publish and clear node memory states via helpers Gregory Price (Meta)
2026-11-14  7:20   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 03/22] mm: introduce the common-memory node state Gregory Price (Meta)
2026-11-14  7:17   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 04/22] mm/page_alloc: build zonelists from common memory Gregory Price (Meta)
2026-11-14  7:16   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 05/22] mm/mempolicy: keep interleave and tmpfs mount policies on " Gregory Price (Meta)
2026-11-14  7:18   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 06/22] mm: base hash distribution on common memory nodes Gregory Price (Meta)
2026-11-14  7:15   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 07/22] mm/memory_hotplug: migrate offlined pages to common memory Gregory Price (Meta)
2026-11-14  7:16   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 08/22] mm/memory-tiers: restrict demotion topology " Gregory Price (Meta)
2026-11-14  7:16   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 09/22] mm/ksm: restrict merging " Gregory Price (Meta)
2026-11-14  7:20   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 10/22] mm/khugepaged: restrict collapse " Gregory Price (Meta)
2026-11-14  7:21   ` sashiko-bot [this message]
2026-11-14  7:21     ` sashiko-bot
2026-11-14  7:09 ` [PATCH 11/22] mm/mempolicy: don't NUMA-hint folios outside " Gregory Price (Meta)
2026-11-14  7:16   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 12/22] mm/damon: restrict DAMON-native folio operations to " Gregory Price (Meta)
2026-11-14  7:15   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 13/22] mm/hugetlb: restrict pool growth " Gregory Price (Meta)
2026-11-14  7:18   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 14/22] mm/page_alloc: count common memory nodes for kswapd recovery Gregory Price (Meta)
2026-11-14  7:18   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 15/22] mm/oom_kill: compare OOM constraints against common memory Gregory Price (Meta)
2026-11-14  7:19   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 16/22] tty/sysrq: use common memory for the manual OOM zonelist Gregory Price (Meta)
2026-11-14  7:19   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 17/22] mm/vmscan: restrict reclaim to common memory Gregory Price (Meta)
2026-11-14  7:22   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 18/22] mm/compaction: restrict compaction " Gregory Price (Meta)
2026-11-14  7:19   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 19/22] mm/migrate: restrict move_pages() destinations " Gregory Price (Meta)
2026-11-14  7:20   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 20/22] PM: hibernate: size the image from " Gregory Price (Meta)
2026-11-14  7:09 ` [PATCH 21/22] mm/khugepaged: base the recommended min_free_kbytes on " Gregory Price (Meta)
2026-11-14  7:20   ` sashiko-bot
2026-11-14  7:09 ` [PATCH 22/22] nodemask: remove the now-unused first_memory_node/next_memory_node Gregory Price (Meta)
2026-11-14  7:19   ` sashiko-bot

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=sashiko-outbox-214261@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=apopple@nvidia.com \
    --cc=axelrasmussen@google.com \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=baoquan.he@linux.dev \
    --cc=brendan.jackman@linux.dev \
    --cc=byungchul@sk.com \
    --cc=chengming.zhou@linux.dev \
    --cc=corbet@lwn.net \
    --cc=dakr@kernel.org \
    --cc=damon@lists.linux.dev \
    --cc=david@kernel.org \
    --cc=dev.jain@arm.com \
    --cc=gourry@gourry.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=hannes@cmpxchg.org \
    --cc=jirislaby@kernel.org \
    --cc=johan@kernel.org \
    --cc=joshua.hahnjy@gmail.com \
    --cc=kas@kernel.org \
    --cc=kasong@tencent.com \
    --cc=kernel-team@meta.com \
    --cc=lance.yang@linux.dev \
    --cc=lenb@kernel.org \
    --cc=liam@infradead.org \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=matthew.brost@intel.com \
    --cc=mhocko@suse.com \
    --cc=muchun.song@linux.dev \
    --cc=nico.pache@linux.dev \
    --cc=osalvador@suse.de \
    --cc=pavel@kernel.org \
    --cc=qi.zheng@linux.dev \
    --cc=rafael@kernel.org \
    --cc=rakie.kim@sk.com \
    --cc=rdunlap@infradead.org \
    --cc=rientjes@google.com \
    --cc=rppt@kernel.org \
    --cc=ryan.roberts@arm.com \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=shakeel.butt@linux.dev \
    --cc=sj@kernel.org \
    --cc=skhan@linuxfoundation.org \
    --cc=surenb@google.com \
    --cc=usama.arif@linux.dev \
    --cc=vbabka@kernel.org \
    --cc=weixugc@google.com \
    --cc=xu.xin@linux.dev \
    --cc=ying.huang@linux.alibaba.com \
    --cc=yuanchu@google.com \
    --cc=yury.norov@gmail.com \
    --cc=ziy@nvidia.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.