From: David Hildenbrand <david@redhat.com>
To: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
virtualization@lists.linux.dev, linux-fsdevel@vger.kernel.org,
"Andrew Morton" <akpm@linux-foundation.org>,
"Jonathan Corbet" <corbet@lwn.net>,
"Madhavan Srinivasan" <maddy@linux.ibm.com>,
"Michael Ellerman" <mpe@ellerman.id.au>,
"Nicholas Piggin" <npiggin@gmail.com>,
"Christophe Leroy" <christophe.leroy@csgroup.eu>,
"Jerrin Shaji George" <jerrin.shaji-george@broadcom.com>,
"Arnd Bergmann" <arnd@arndb.de>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Jason Wang" <jasowang@redhat.com>,
"Xuan Zhuo" <xuanzhuo@linux.alibaba.com>,
"Eugenio Pérez" <eperezma@redhat.com>,
"Alexander Viro" <viro@zeniv.linux.org.uk>,
"Christian Brauner" <brauner@kernel.org>,
"Jan Kara" <jack@suse.cz>, "Zi Yan" <ziy@nvidia.com>,
"Matthew Brost" <matthew.brost@intel.com>,
"Joshua Hahn" <joshua.hahnjy@gmail.com>,
"Rakie Kim" <rakie.kim@sk.com>,
"Byungchul Park" <byungchul@sk.com>,
"Gregory Price" <gourry@gourry.net>,
"Ying Huang" <ying.huang@linux.alibaba.com>,
"Alistair Popple" <apopple@nvidia.com>,
"Liam R. Howlett" <Liam.Howlett@oracle.com>,
"Vlastimil Babka" <vbabka@suse.cz>,
"Mike Rapoport" <rppt@kernel.org>,
"Suren Baghdasaryan" <surenb@google.com>,
"Michal Hocko" <mhocko@suse.com>,
"Matthew Wilcox (Oracle)" <willy@infradead.org>,
"Minchan Kim" <minchan@kernel.org>,
"Sergey Senozhatsky" <senozhatsky@chromium.org>,
"Brendan Jackman" <jackmanb@google.com>,
"Johannes Weiner" <hannes@cmpxchg.org>,
"Jason Gunthorpe" <jgg@ziepe.ca>,
"John Hubbard" <jhubbard@nvidia.com>,
"Peter Xu" <peterx@redhat.com>, "Xu Xin" <xu.xin16@zte.com.cn>,
"Chengming Zhou" <chengming.zhou@linux.dev>,
"Miaohe Lin" <linmiaohe@huawei.com>,
"Naoya Horiguchi" <nao.horiguchi@gmail.com>,
"Oscar Salvador" <osalvador@suse.de>,
"Rik van Riel" <riel@surriel.com>,
"Harry Yoo" <harry.yoo@oracle.com>,
"Qi Zheng" <zhengqi.arch@bytedance.com>,
"Shakeel Butt" <shakeel.butt@linux.dev>
Subject: Re: [PATCH v1 03/29] mm/zsmalloc: drop PageIsolated() related VM_BUG_ONs
Date: Tue, 1 Jul 2025 10:03:57 +0200 [thread overview]
Message-ID: <411b94bb-4662-4357-86a3-05478f2f8c8f@redhat.com> (raw)
In-Reply-To: <ccc333aa-46c2-49ae-8d0f-ffbde95cb22d@lucifer.local>
On 30.06.25 17:17, Lorenzo Stoakes wrote:
> On Mon, Jun 30, 2025 at 02:59:44PM +0200, David Hildenbrand wrote:
>> Let's drop these checks; these are conditions the core migration code
>> must make sure will hold either way, no need to double check.
>>
>> Acked-by: Zi Yan <ziy@nvidia.com>
>> Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
>> Acked-by: Harry Yoo <harry.yoo@oracle.com>
>> Signed-off-by: David Hildenbrand <david@redhat.com>
>
> LGTM, one comment below.
>
> Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
>
Thanks!
>> ---
>> mm/zpdesc.h | 5 -----
>> mm/zsmalloc.c | 5 -----
>> 2 files changed, 10 deletions(-)
>>
>> diff --git a/mm/zpdesc.h b/mm/zpdesc.h
>> index d3df316e5bb7b..5cb7e3de43952 100644
>> --- a/mm/zpdesc.h
>> +++ b/mm/zpdesc.h
>> @@ -168,11 +168,6 @@ static inline void __zpdesc_clear_zsmalloc(struct zpdesc *zpdesc)
>> __ClearPageZsmalloc(zpdesc_page(zpdesc));
>> }
>>
>> -static inline bool zpdesc_is_isolated(struct zpdesc *zpdesc)
>> -{
>> - return PageIsolated(zpdesc_page(zpdesc));
>> -}
>> -
>> static inline struct zone *zpdesc_zone(struct zpdesc *zpdesc)
>> {
>> return page_zone(zpdesc_page(zpdesc));
>> diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
>> index 999b513c7fdff..7f1431f2be98f 100644
>> --- a/mm/zsmalloc.c
>> +++ b/mm/zsmalloc.c
>> @@ -1719,8 +1719,6 @@ static bool zs_page_isolate(struct page *page, isolate_mode_t mode)
>> * Page is locked so zspage couldn't be destroyed. For detail, look at
>> * lock_zspage in free_zspage.
>> */
>> - VM_BUG_ON_PAGE(PageIsolated(page), page);
>> -
>> return true;
>> }
>>
>> @@ -1739,8 +1737,6 @@ static int zs_page_migrate(struct page *newpage, struct page *page,
>> unsigned long old_obj, new_obj;
>> unsigned int obj_idx;
>>
>> - VM_BUG_ON_PAGE(!zpdesc_is_isolated(zpdesc), zpdesc_page(zpdesc));
>> -
>> /* The page is locked, so this pointer must remain valid */
>> zspage = get_zspage(zpdesc);
>> pool = zspage->pool;
>> @@ -1811,7 +1807,6 @@ static int zs_page_migrate(struct page *newpage, struct page *page,
>>
>> static void zs_page_putback(struct page *page)
>> {
>> - VM_BUG_ON_PAGE(!PageIsolated(page), page);
>> }
>
> Can we just drop zs_page_putback from movable_operations() now this is empty?
Common code expects there to be a callback, and I don't want to change
that. Long-term I assume it will rather indicate a BUG if there is no
putback handler, not something we want to encourage.
Likely, once we rework that isolated pages cannot get freed here, we'd
have to handle stuff on the putback path (realize that the page can be
freed and free it) -- TODO for that is added in #12.
--
Cheers,
David / dhildenb
next prev parent reply other threads:[~2025-07-01 8:10 UTC|newest]
Thread overview: 138+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-30 12:59 [PATCH v1 00/29] mm/migration: rework movable_ops page migration (part 1) David Hildenbrand
2025-06-30 12:59 ` [PATCH v1 01/29] mm/balloon_compaction: we cannot have isolated pages in the balloon list David Hildenbrand
2025-06-30 14:45 ` Lorenzo Stoakes
2025-06-30 12:59 ` [PATCH v1 02/29] mm/balloon_compaction: convert balloon_page_delete() to balloon_page_finalize() David Hildenbrand
2025-06-30 15:15 ` Lorenzo Stoakes
2025-07-01 7:58 ` David Hildenbrand
2025-07-01 9:01 ` Lorenzo Stoakes
2025-07-01 9:59 ` David Hildenbrand
2025-06-30 12:59 ` [PATCH v1 03/29] mm/zsmalloc: drop PageIsolated() related VM_BUG_ONs David Hildenbrand
2025-06-30 15:17 ` Lorenzo Stoakes
2025-07-01 8:03 ` David Hildenbrand [this message]
2025-07-01 8:57 ` Lorenzo Stoakes
2025-06-30 12:59 ` [PATCH v1 04/29] mm/page_alloc: let page freeing clear any set page type David Hildenbrand
2025-06-30 15:27 ` Lorenzo Stoakes
2025-07-01 8:17 ` David Hildenbrand
2025-07-01 8:27 ` Lorenzo Stoakes
2025-07-01 8:34 ` David Hildenbrand
2025-07-01 8:37 ` Lorenzo Stoakes
2025-07-01 10:02 ` David Hildenbrand
2025-06-30 12:59 ` [PATCH v1 05/29] mm/balloon_compaction: make PageOffline sticky until the page is freed David Hildenbrand
2025-06-30 16:01 ` Lorenzo Stoakes
2025-06-30 16:14 ` Zi Yan
2025-06-30 16:17 ` Lorenzo Stoakes
2025-07-01 6:13 ` Harry Yoo
2025-07-01 8:11 ` David Hildenbrand
2025-07-01 8:12 ` David Hildenbrand
2025-07-01 8:21 ` David Hildenbrand
2025-06-30 12:59 ` [PATCH v1 06/29] mm/zsmalloc: make PageZsmalloc() " David Hildenbrand
2025-06-30 16:03 ` Lorenzo Stoakes
2025-07-01 8:27 ` David Hildenbrand
2025-06-30 12:59 ` [PATCH v1 07/29] mm/migrate: rename isolate_movable_page() to isolate_movable_ops_page() David Hildenbrand
2025-06-30 16:24 ` Lorenzo Stoakes
2025-07-01 8:29 ` David Hildenbrand
2025-07-01 9:11 ` Lorenzo Stoakes
2025-06-30 12:59 ` [PATCH v1 08/29] mm/migrate: rename putback_movable_folio() to putback_movable_ops_page() David Hildenbrand
2025-06-30 16:29 ` Lorenzo Stoakes
2025-07-01 6:04 ` Harry Yoo
2025-07-01 14:42 ` Zi Yan
2025-06-30 12:59 ` [PATCH v1 09/29] mm/migrate: factor out movable_ops page handling into migrate_movable_ops_page() David Hildenbrand
2025-06-30 17:05 ` Lorenzo Stoakes
2025-07-01 9:24 ` David Hildenbrand
2025-07-01 10:10 ` David Hildenbrand
2025-07-01 7:05 ` Harry Yoo
2025-06-30 12:59 ` [PATCH v1 10/29] mm/migrate: remove folio_test_movable() and folio_movable_ops() David Hildenbrand
2025-06-30 17:07 ` Lorenzo Stoakes
2025-07-01 10:15 ` David Hildenbrand
2025-07-01 10:25 ` Lorenzo Stoakes
2025-07-01 6:31 ` Harry Yoo
2025-06-30 12:59 ` [PATCH v1 11/29] mm/migrate: move movable_ops page handling out of move_to_new_folio() David Hildenbrand
2025-07-01 7:14 ` Harry Yoo
2025-07-01 9:37 ` Lorenzo Stoakes
2025-06-30 12:59 ` [PATCH v1 12/29] mm/zsmalloc: stop using __ClearPageMovable() David Hildenbrand
2025-07-01 8:20 ` Harry Yoo
2025-07-01 9:40 ` Lorenzo Stoakes
2025-07-02 8:11 ` Sergey Senozhatsky
2025-07-02 8:25 ` David Hildenbrand
2025-07-02 10:10 ` Sergey Senozhatsky
2025-07-02 10:55 ` David Hildenbrand
2025-07-03 2:28 ` Sergey Senozhatsky
2025-07-03 3:22 ` Sergey Senozhatsky
2025-07-03 7:45 ` David Hildenbrand
2025-07-03 7:49 ` Sergey Senozhatsky
2025-06-30 12:59 ` [PATCH v1 13/29] mm/balloon_compaction: " David Hildenbrand
2025-07-01 10:03 ` Lorenzo Stoakes
2025-07-01 10:19 ` David Hildenbrand
2025-07-01 10:40 ` Lorenzo Stoakes
2025-07-01 12:24 ` David Hildenbrand
2025-06-30 12:59 ` [PATCH v1 14/29] mm/migrate: remove __ClearPageMovable() David Hildenbrand
2025-07-01 8:36 ` Harry Yoo
2025-07-01 10:43 ` Lorenzo Stoakes
2025-07-01 12:25 ` David Hildenbrand
2025-06-30 12:59 ` [PATCH v1 15/29] mm/migration: remove PageMovable() David Hildenbrand
2025-07-01 10:50 ` Lorenzo Stoakes
2025-07-01 12:27 ` David Hildenbrand
2025-07-02 9:20 ` Harry Yoo
2025-06-30 12:59 ` [PATCH v1 16/29] mm: rename __PageMovable() to page_has_movable_ops() David Hildenbrand
2025-07-01 10:59 ` Lorenzo Stoakes
2025-07-01 12:29 ` David Hildenbrand
2025-07-02 9:29 ` Harry Yoo
2025-06-30 12:59 ` [PATCH v1 17/29] mm/page_isolation: drop __folio_test_movable() check for large folios David Hildenbrand
2025-07-01 11:03 ` Lorenzo Stoakes
2025-07-01 12:32 ` David Hildenbrand
2025-07-02 9:54 ` Harry Yoo
2025-07-02 9:48 ` Harry Yoo
2025-06-30 12:59 ` [PATCH v1 18/29] mm: remove __folio_test_movable() David Hildenbrand
2025-07-01 11:30 ` Lorenzo Stoakes
2025-07-01 12:36 ` David Hildenbrand
2025-07-02 10:20 ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 19/29] mm: stop storing migration_ops in page->mapping David Hildenbrand
2025-07-01 12:12 ` Lorenzo Stoakes
2025-07-01 12:41 ` David Hildenbrand
2025-07-02 10:34 ` Harry Yoo
2025-07-02 11:04 ` David Hildenbrand
2025-07-02 11:43 ` Harry Yoo
2025-07-02 11:51 ` David Hildenbrand
2025-07-02 11:57 ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 20/29] mm: convert "movable" flag in page->mapping to a page flag David Hildenbrand
2025-07-01 12:44 ` Lorenzo Stoakes
2025-07-01 12:49 ` David Hildenbrand
2025-07-02 11:54 ` Harry Yoo
2025-07-02 12:01 ` David Hildenbrand
2025-07-02 13:01 ` Harry Yoo
2025-07-02 15:25 ` David Hildenbrand
2025-06-30 13:00 ` [PATCH v1 21/29] mm: rename PG_isolated to PG_movable_ops_isolated David Hildenbrand
2025-07-01 12:51 ` Lorenzo Stoakes
2025-07-01 16:19 ` David Hildenbrand
2025-07-02 13:04 ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 22/29] mm/page-flags: rename PAGE_MAPPING_MOVABLE to PAGE_MAPPING_ANON_KSM David Hildenbrand
2025-07-01 12:54 ` Lorenzo Stoakes
2025-07-01 19:31 ` David Hildenbrand
2025-07-02 9:06 ` Lorenzo Stoakes
2025-07-02 13:11 ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 23/29] mm/page-alloc: remove PageMappingFlags() David Hildenbrand
2025-07-01 13:02 ` Lorenzo Stoakes
2025-07-01 19:34 ` David Hildenbrand
2025-07-02 8:49 ` Lorenzo Stoakes
2025-07-02 9:02 ` David Hildenbrand
2025-07-02 9:09 ` Lorenzo Stoakes
2025-07-02 9:16 ` David Hildenbrand
2025-07-02 13:20 ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 24/29] mm/page-flags: remove folio_mapping_flags() David Hildenbrand
2025-07-01 13:03 ` Lorenzo Stoakes
2025-07-02 13:23 ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 25/29] mm: simplify folio_expected_ref_count() David Hildenbrand
2025-07-01 13:15 ` Lorenzo Stoakes
2025-07-02 13:40 ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 26/29] mm: rename PAGE_MAPPING_* to FOLIO_MAPPING_* David Hildenbrand
2025-07-01 13:17 ` Lorenzo Stoakes
2025-07-02 14:10 ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 27/29] docs/mm: convert from "Non-LRU page migration" to "movable_ops page migration" David Hildenbrand
2025-07-01 13:19 ` Lorenzo Stoakes
2025-07-02 14:23 ` Harry Yoo
2025-07-02 14:52 ` David Hildenbrand
2025-06-30 13:00 ` [PATCH v1 28/29] mm/balloon_compaction: "movable_ops" doc updates David Hildenbrand
2025-07-01 13:20 ` Lorenzo Stoakes
2025-06-30 13:00 ` [PATCH v1 29/29] mm/balloon_compaction: provide single balloon_page_insert() and balloon_mapping_gfp_mask() David Hildenbrand
2025-07-01 13:22 ` Lorenzo Stoakes
2025-07-01 19:38 ` [PATCH v1 00/29] mm/migration: rework movable_ops page migration (part 1) David Hildenbrand
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=411b94bb-4662-4357-86a3-05478f2f8c8f@redhat.com \
--to=david@redhat.com \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=apopple@nvidia.com \
--cc=arnd@arndb.de \
--cc=brauner@kernel.org \
--cc=byungchul@sk.com \
--cc=chengming.zhou@linux.dev \
--cc=christophe.leroy@csgroup.eu \
--cc=corbet@lwn.net \
--cc=eperezma@redhat.com \
--cc=gourry@gourry.net \
--cc=gregkh@linuxfoundation.org \
--cc=hannes@cmpxchg.org \
--cc=harry.yoo@oracle.com \
--cc=jack@suse.cz \
--cc=jackmanb@google.com \
--cc=jasowang@redhat.com \
--cc=jerrin.shaji-george@broadcom.com \
--cc=jgg@ziepe.ca \
--cc=jhubbard@nvidia.com \
--cc=joshua.hahnjy@gmail.com \
--cc=linmiaohe@huawei.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=maddy@linux.ibm.com \
--cc=matthew.brost@intel.com \
--cc=mhocko@suse.com \
--cc=minchan@kernel.org \
--cc=mpe@ellerman.id.au \
--cc=mst@redhat.com \
--cc=nao.horiguchi@gmail.com \
--cc=npiggin@gmail.com \
--cc=osalvador@suse.de \
--cc=peterx@redhat.com \
--cc=rakie.kim@sk.com \
--cc=riel@surriel.com \
--cc=rppt@kernel.org \
--cc=senozhatsky@chromium.org \
--cc=shakeel.butt@linux.dev \
--cc=surenb@google.com \
--cc=vbabka@suse.cz \
--cc=viro@zeniv.linux.org.uk \
--cc=virtualization@lists.linux.dev \
--cc=willy@infradead.org \
--cc=xu.xin16@zte.com.cn \
--cc=xuanzhuo@linux.alibaba.com \
--cc=ying.huang@linux.alibaba.com \
--cc=zhengqi.arch@bytedance.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox