From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rafael Aquini Date: Wed, 8 Jun 2022 09:06:17 -0400 Subject: [Cluster-devel] [PATCH 15/20] balloon: Convert to migrate_folio In-Reply-To: <36cc5e2b-b768-ce1c-fa30-72a932587289@redhat.com> References: <20220606204050.2625949-1-willy@infradead.org> <20220606204050.2625949-16-willy@infradead.org> <36cc5e2b-b768-ce1c-fa30-72a932587289@redhat.com> Message-ID: List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit On Wed, Jun 08, 2022 at 11:59:31AM +0200, David Hildenbrand wrote: > On 07.06.22 21:21, Matthew Wilcox wrote: > > On Tue, Jun 07, 2022 at 03:24:15PM +0100, Matthew Wilcox wrote: > >> On Tue, Jun 07, 2022 at 09:36:21AM +0200, David Hildenbrand wrote: > >>> On 06.06.22 22:40, Matthew Wilcox (Oracle) wrote: > >>>> const struct address_space_operations balloon_aops = { > >>>> - .migratepage = balloon_page_migrate, > >>>> + .migrate_folio = balloon_migrate_folio, > >>>> .isolate_page = balloon_page_isolate, > >>>> .putback_page = balloon_page_putback, > >>>> }; > >>> > >>> I assume you're working on conversion of the other callbacks as well, > >>> because otherwise, this ends up looking a bit inconsistent and confusing :) > >> > >> My intention was to finish converting aops for the next merge window. > >> > >> However, it seems to me that we goofed back in 2016 by merging > >> commit bda807d44454. isolate_page() and putback_page() should > >> never have been part of address_space_operations. > >> > >> I'm about to embark on creating a new migrate_operations struct > >> for drivers to use that contains only isolate/putback/migrate. > >> No filesystem uses isolate/putback, so those can just be deleted. > >> Both migrate_operations & address_space_operations will contain a > >> migrate callback. > > That makes sense to me. I wonder if there was a design > decision/discussion behind that. CCing Rafael. > None that I recollect. If memory still serves me, I think the idea behind bda807d44454 and friends was to provide a generic way to allow page mobility for drivers without adding complexity to the page isolation / putback paths, and since the migration callback was already part of the aops struct those new callbacks just followed suit. -- Rafael