From: Alistair Popple <apopple@nvidia.com>
To: "Huang, Ying" <ying.huang@linux.alibaba.com>
Cc: "David Hildenbrand" <david@redhat.com>, "Zi Yan" <ziy@nvidia.com>,
"Matthew Wilcox" <willy@infradead.org>,
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>,
"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>,
"Lorenzo Stoakes" <lorenzo.stoakes@oracle.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>,
"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 RFC 07/29] mm/migrate: rename isolate_movable_page() to isolate_movable_ops_page()
Date: Mon, 30 Jun 2025 16:41:41 +1000 [thread overview]
Message-ID: <cdvsv53quadure7mfgbrxuggzwj3w76lc24bfu62mf3txnblgt@k3psviu3q5fl> (raw)
In-Reply-To: <878qlaqc4k.fsf@DESKTOP-5N7EMDA>
On Mon, Jun 30, 2025 at 08:58:03AM +0800, Huang, Ying wrote:
> Alistair Popple <apopple@nvidia.com> writes:
>
> > On Sun, Jun 29, 2025 at 07:28:50PM +0800, Huang, Ying wrote:
> >> David Hildenbrand <david@redhat.com> writes:
> >>
> >> > On 18.06.25 20:48, Zi Yan wrote:
> >> >> On 18 Jun 2025, at 14:39, Matthew Wilcox wrote:
> >> >>
> >> >>> On Wed, Jun 18, 2025 at 02:14:15PM -0400, Zi Yan wrote:
> >> >>>> On 18 Jun 2025, at 13:39, David Hildenbrand wrote:
> >> >>>>
> >> >>>>> ... and start moving back to per-page things that will absolutely not be
> >> >>>>> folio things in the future. Add documentation and a comment that the
> >> >>>>> remaining folio stuff (lock, refcount) will have to be reworked as well.
> >> >>>>>
> >> >>>>> While at it, convert the VM_BUG_ON() into a WARN_ON_ONCE() and handle
> >> >>>>> it gracefully (relevant with further changes), and convert a
> >> >>>>> WARN_ON_ONCE() into a VM_WARN_ON_ONCE_PAGE().
> >> >>>>
> >> >>>> The reason is that there is no upstream code, which use movable_ops for
> >> >>>> folios? Is there any fundamental reason preventing movable_ops from
> >> >>>> being used on folios?
> >> >>>
> >> >>> folios either belong to a filesystem or they are anonymous memory, and
> >> >>> so either the filesystem knows how to migrate them (through its a_ops)
> >> >>> or the migration code knows how to handle anon folios directly.
> >> >
> >> > Right, migration of folios will be handled by migration core.
> >> >
> >> >> for device private pages, to support migrating >0 order anon or fs
> >> >> folios
> >> >> to device, how should we represent them for devices? if you think folio is
> >> >> only for anon and fs.
> >> >
> >> > I assume they are proper folios, so yes. Just like they are handled
> >> > today (-> folios)
> >
> > Yes, they should be proper folios.
>
> So, folios include file cache, anonymous, and some device private.
Oh maybe I misunderstood what you were asking. We have anon and fs folios, and
we currently have device private versions of the former. However ideally I think
in a memdesc world we would have anon/fs folios, and the device private bit
would be in the memdesc or some such and so at the level of a folio we'd only
be dealing with "proper" anon or fs folios (of course in practice we may never
permit device private versions of the latter).
In my earlier answer I just wanted to highlight the fact that order >0 device
folios now look the same as normal higher order anon or fs folios. Ie. we don't
do any of the special pgmap refcounting, etc. that we used to do for higher
order device folios.
> >> > I was asking a related question at LSF/MM in Alistair's session: are
> >> > we sure these things will be folios even before they are assigned to a
> >> > filesystem? I recall the answer was "yes".
> >> >
> >> > So we don't (and will not) support movable_ops for folios.
> >>
> >> Is it possible to use some device specific callbacks (DMA?) to copy
> >> from/to the device private folios (or pages) to/from the normal
> >> file/anon folios in the future?
> >
> > I guess we could put such callbacks on the folio->pgmap, but I'm not sure why
> > we would want to. Currently all migration to/from device private (or coherent)
> > folios is managed by the device, which is one of the features of ZONE_DEVICE.
>
> Yes. The is the current behavior per my understanding too.
>
> > Did you have some particular reason/idea for why we might want to do this?
>
> No. Just want to check whether there are some requirements for that. I
> think that it's just another way to organize code.
>
> ---
> Best Regards,
> Huang, Ying
next prev parent reply other threads:[~2025-06-30 6:41 UTC|newest]
Thread overview: 93+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-18 17:39 [PATCH RFC 00/29] mm/migration: rework movable_ops page migration (part 1) David Hildenbrand
2025-06-18 17:39 ` [PATCH RFC 01/29] mm/balloon_compaction: we cannot have isolated pages in the balloon list David Hildenbrand
2025-06-18 18:32 ` Zi Yan
2025-06-18 17:39 ` [PATCH RFC 02/29] mm/balloon_compaction: convert balloon_page_delete() to balloon_page_finalize() David Hildenbrand
2025-06-18 17:39 ` [PATCH RFC 03/29] mm/zsmalloc: drop PageIsolated() related VM_BUG_ONs David Hildenbrand
2025-06-18 18:37 ` Zi Yan
2025-06-19 2:44 ` Sergey Senozhatsky
2025-06-30 6:49 ` Harry Yoo
2025-06-18 17:39 ` [PATCH RFC 04/29] mm/page_alloc: allow for making page types sticky until freed David Hildenbrand
2025-06-18 18:04 ` Zi Yan
2025-06-18 18:06 ` Matthew Wilcox
2025-06-18 18:09 ` Zi Yan
2025-06-18 18:08 ` Zi Yan
2025-06-23 15:26 ` David Hildenbrand
2025-06-23 15:28 ` Zi Yan
2025-06-30 6:59 ` Harry Yoo
2025-06-18 18:43 ` Zi Yan
2025-06-23 15:27 ` David Hildenbrand
2025-06-18 17:39 ` [PATCH RFC 05/29] mm/balloon_compaction: make PageOffline sticky David Hildenbrand
2025-06-18 18:50 ` Zi Yan
2025-06-23 15:28 ` David Hildenbrand
2025-06-23 15:29 ` Zi Yan
2025-06-30 7:07 ` Harry Yoo
2025-06-18 17:39 ` [PATCH RFC 06/29] mm/zsmalloc: make PageZsmalloc() sticky David Hildenbrand
2025-06-18 18:51 ` Zi Yan
2025-06-19 2:45 ` Sergey Senozhatsky
2025-06-30 7:08 ` Harry Yoo
2025-06-18 17:39 ` [PATCH RFC 07/29] mm/migrate: rename isolate_movable_page() to isolate_movable_ops_page() David Hildenbrand
2025-06-18 18:14 ` Zi Yan
2025-06-18 18:39 ` Matthew Wilcox
2025-06-18 18:48 ` Zi Yan
2025-06-23 15:33 ` David Hildenbrand
2025-06-23 15:42 ` Zi Yan
2025-06-23 15:53 ` David Hildenbrand
2025-06-27 15:37 ` David Hildenbrand
2025-06-29 11:28 ` Huang, Ying
2025-06-30 0:20 ` Alistair Popple
2025-06-30 0:58 ` Huang, Ying
2025-06-30 6:41 ` Alistair Popple [this message]
2025-06-30 8:04 ` Harry Yoo
2025-06-30 8:16 ` David Hildenbrand
2025-06-18 17:39 ` [PATCH RFC 08/29] mm/migrate: rename putback_movable_folio() to putback_movable_ops_page() David Hildenbrand
2025-06-18 19:10 ` Zi Yan
2025-06-18 19:18 ` Matthew Wilcox
2025-06-18 19:25 ` Zi Yan
2025-06-18 20:04 ` Matthew Wilcox
2025-06-23 15:37 ` David Hildenbrand
2025-06-18 17:39 ` [PATCH RFC 09/29] mm/migrate: factor out movable_ops page handling into migrate_movable_ops_page() David Hildenbrand
2025-06-20 19:30 ` Zi Yan
2025-06-18 17:39 ` [PATCH RFC 10/29] mm/migrate: remove folio_test_movable() and folio_movable_ops() David Hildenbrand
2025-06-20 19:36 ` Zi Yan
2025-06-18 17:39 ` [PATCH RFC 11/29] mm/migrate: move movable_ops page handling out of move_to_new_folio() David Hildenbrand
2025-06-20 20:06 ` Zi Yan
2025-06-30 12:07 ` David Hildenbrand
2025-06-18 17:39 ` [PATCH RFC 12/29] mm/zsmalloc: stop using __ClearPageMovable() David Hildenbrand
2025-06-18 17:39 ` [PATCH RFC 13/29] mm/balloon_compaction: " David Hildenbrand
2025-06-30 1:18 ` Huang, Ying
2025-06-30 8:17 ` David Hildenbrand
2025-06-18 17:39 ` [PATCH RFC 14/29] mm/migrate: remove __ClearPageMovable() David Hildenbrand
2025-06-20 20:15 ` Zi Yan
2025-06-23 15:43 ` David Hildenbrand
2025-06-18 17:39 ` [PATCH RFC 15/29] mm/migration: remove PageMovable() David Hildenbrand
2025-06-20 20:19 ` Zi Yan
2025-06-18 17:39 ` [PATCH RFC 16/29] mm: rename __PageMovable() to page_has_movable_ops() David Hildenbrand
2025-06-20 20:37 ` Zi Yan
2025-06-23 15:47 ` David Hildenbrand
2025-06-23 16:05 ` Zi Yan
2025-06-18 17:40 ` [PATCH RFC 17/29] mm/page_isolation: drop __folio_test_movable() check for large folios David Hildenbrand
2025-06-20 20:38 ` Zi Yan
2025-06-18 17:40 ` [PATCH RFC 18/29] mm: remove __folio_test_movable() David Hildenbrand
2025-06-20 20:41 ` Zi Yan
2025-06-30 10:38 ` David Hildenbrand
2025-06-18 17:40 ` [PATCH RFC 19/29] mm: stop storing migration_ops in page->mapping David Hildenbrand
2025-06-20 20:45 ` Zi Yan
2025-06-18 17:40 ` [PATCH RFC 20/29] mm: convert "movable" flag in page->mapping to a page flag David Hildenbrand
2025-06-23 14:14 ` Zi Yan
2025-06-23 15:50 ` David Hildenbrand
2025-06-18 17:40 ` [PATCH RFC 21/29] mm: rename PG_isolated to PG_movable_ops_isolated David Hildenbrand
2025-06-23 14:16 ` Zi Yan
2025-06-18 17:40 ` [PATCH RFC 22/29] mm/page-flags: rename PAGE_MAPPING_MOVABLE to PAGE_MAPPING_ANON_KSM David Hildenbrand
2025-06-23 14:17 ` Zi Yan
2025-06-18 17:40 ` [PATCH RFC 23/29] mm/page-alloc: remove PageMappingFlags() David Hildenbrand
2025-06-23 14:20 ` Zi Yan
2025-06-18 17:40 ` [PATCH RFC 24/29] mm/page-flags: remove folio_mapping_flags() David Hildenbrand
2025-06-23 14:20 ` Zi Yan
2025-06-18 17:40 ` [PATCH RFC 25/29] mm: simplify folio_expected_ref_count() David Hildenbrand
2025-06-23 14:23 ` Zi Yan
2025-06-18 17:40 ` [PATCH RFC 26/29] mm: rename PAGE_MAPPING_* to FOLIO_MAPPING_* David Hildenbrand
2025-06-23 14:25 ` Zi Yan
2025-06-18 17:40 ` [PATCH RFC 27/29] docs/mm: convert from "Non-LRU page migration" to "movable_ops page migration" David Hildenbrand
2025-06-23 14:28 ` Zi Yan
2025-06-18 17:40 ` [PATCH RFC 28/29] mm/balloon_compaction: "movable_ops" doc updates David Hildenbrand
2025-06-18 17:40 ` [PATCH RFC 29/29] mm/balloon_compaction: provide single balloon_page_insert() and balloon_mapping_gfp_mask() 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=cdvsv53quadure7mfgbrxuggzwj3w76lc24bfu62mf3txnblgt@k3psviu3q5fl \
--to=apopple@nvidia.com \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--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=david@redhat.com \
--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