From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EAB1925B081 for ; Tue, 9 Jun 2026 05:34:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780983286; cv=none; b=a8iUFKebLF2GsVQi7uGzaEKu+WAGvlyHKbY/DqqEGUJJ/NoiurHLgXd6eTDDTBqLhFUYRsMa9eo1FvqWXz8UTdKO0FEzcITxglEaC2rDB2sMGzstg/sdnG2RWcAL+n6d3pNiOnx1ZUw+u9w90Hw4uz9pLyK6t6ZVXlWFH6tfopU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780983286; c=relaxed/simple; bh=kRP3VSO1BrC4vri0+L29KFGhsjb25YswCQ3fFsgsieI=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=LbtUI6vV1uSs7eY7PCkibnFDVMGs6r5+Ylv1JDOkZg3g7GZTZq1aMC7W7psNzEgBHmlLnT1hnr7xhZnGgMAyTrYLE1I56w6Gb3YdbUiXl1P42KfCyjvG7h3RVASahodGly/CHXysbS51qPu/0EUu9FrTF6M+Qjc9043002Jki/o= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=bgrmiMVR; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="bgrmiMVR" Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 3252B169C; Mon, 8 Jun 2026 22:34:38 -0700 (PDT) Received: from [10.164.19.15] (unknown [10.164.19.15]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 396DD3FE53; Mon, 8 Jun 2026 22:34:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1780983283; bh=kRP3VSO1BrC4vri0+L29KFGhsjb25YswCQ3fFsgsieI=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=bgrmiMVRYCu1CJfKKQYjTtR+oniRzXdVYTtjXELlorPtcvHGcmC5HzH9x+CbuzRVr s/+NqoTK+Sm17mnqBQAkkeU9C0IlkAJtc8Y1ufP7KRVMey8WL/5D+dQeVcq7hyRweA g9KMu5ACf9OOMHGT+HGDlDO0zvXlGp9gZpfZpuIE= Message-ID: <996a1f61-3b59-40ef-9508-ef339cc0c931@arm.com> Date: Tue, 9 Jun 2026 11:04:27 +0530 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/7] mm/migrate: rename PAGE_ migration flags to FOLIO_ To: Shivank Garg , akpm@linux-foundation.org, david@kernel.org Cc: kinseyho@google.com, weixugc@google.com, ljs@kernel.org, Liam.Howlett@oracle.com, vbabka@kernel.org, willy@infradead.org, rppt@kernel.org, surenb@google.com, mhocko@suse.com, ziy@nvidia.com, matthew.brost@intel.com, joshua.hahnjy@gmail.com, rakie.kim@sk.com, byungchul@sk.com, gourry@gourry.net, ying.huang@linux.alibaba.com, apopple@nvidia.com, dave@stgolabs.net, Jonathan.Cameron@huawei.com, rkodsara@amd.com, vkoul@kernel.org, bharata@amd.com, sj@kernel.org, rientjes@google.com, xuezhengchu@huawei.com, yiannis@zptcorp.com, dave.hansen@intel.com, hannes@cmpxchg.org, jhubbard@nvidia.com, peterx@redhat.com, riel@surriel.com, shakeel.butt@linux.dev, stalexan@redhat.com, tj@kernel.org, nifan.cxl@gmail.com, jic23@kernel.org, aneesh.kumar@kernel.org, nathan.lynch@amd.com, Frank.li@nxp.com, djbw@kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Baolin Wang , Lance Yang References: <20260428155043.39251-2-shivankg@amd.com> <20260428155043.39251-4-shivankg@amd.com> Content-Language: en-US From: Dev Jain In-Reply-To: <20260428155043.39251-4-shivankg@amd.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 28/04/26 9:20 pm, Shivank Garg wrote: > These flags only track folio-specific state during migration and are > not used for movable_ops pages. Rename the enum values and the > old_page_state variable to match. > > No functional change. > > Suggested-by: David Hildenbrand > Acked-by: David Hildenbrand (Arm) > Reviewed-by: Zi Yan > Reviewed-by: Baolin Wang > Reviewed-by: Lance Yang > Signed-off-by: Shivank Garg > --- migrate_folio_undo_src() has a parameter "page_was_mapped", change that too? > mm/migrate.c | 48 +++++++++++++++++++++++------------------------- > 1 file changed, 23 insertions(+), 25 deletions(-) > > diff --git a/mm/migrate.c b/mm/migrate.c > index 8a64291ab5b4..0c6a0ab6ecce 100644 > --- a/mm/migrate.c > +++ b/mm/migrate.c > @@ -1135,26 +1135,24 @@ static int move_to_new_folio(struct folio *dst, struct folio *src, > * This is safe because nobody is using it except us. > */ > enum { > - PAGE_WAS_MAPPED = BIT(0), > - PAGE_WAS_MLOCKED = BIT(1), > - PAGE_OLD_STATES = PAGE_WAS_MAPPED | PAGE_WAS_MLOCKED, > + FOLIO_WAS_MAPPED = BIT(0), > + FOLIO_WAS_MLOCKED = BIT(1), > + FOLIO_OLD_STATES = FOLIO_WAS_MAPPED | FOLIO_WAS_MLOCKED, > }; > > static void __migrate_folio_record(struct folio *dst, > - int old_page_state, > - struct anon_vma *anon_vma) > + int old_folio_state, struct anon_vma *anon_vma) > { > - dst->private = (void *)anon_vma + old_page_state; > + dst->private = (void *)anon_vma + old_folio_state; > } > > static void __migrate_folio_extract(struct folio *dst, > - int *old_page_state, > - struct anon_vma **anon_vmap) > + int *old_folio_state, struct anon_vma **anon_vmap) > { > unsigned long private = (unsigned long)dst->private; > > - *anon_vmap = (struct anon_vma *)(private & ~PAGE_OLD_STATES); > - *old_page_state = private & PAGE_OLD_STATES; > + *anon_vmap = (struct anon_vma *)(private & ~FOLIO_OLD_STATES); > + *old_folio_state = private & FOLIO_OLD_STATES; > dst->private = NULL; > } > > @@ -1209,7 +1207,7 @@ static int migrate_folio_unmap(new_folio_t get_new_folio, > { > struct folio *dst; > int rc = -EAGAIN; > - int old_page_state = 0; > + int old_folio_state = 0; > struct anon_vma *anon_vma = NULL; > bool locked = false; > bool dst_locked = false; > @@ -1253,7 +1251,7 @@ static int migrate_folio_unmap(new_folio_t get_new_folio, > } > locked = true; > if (folio_test_mlocked(src)) > - old_page_state |= PAGE_WAS_MLOCKED; > + old_folio_state |= FOLIO_WAS_MLOCKED; > > if (folio_test_writeback(src)) { > /* > @@ -1302,7 +1300,7 @@ static int migrate_folio_unmap(new_folio_t get_new_folio, > dst_locked = true; > > if (unlikely(page_has_movable_ops(&src->page))) { > - __migrate_folio_record(dst, old_page_state, anon_vma); > + __migrate_folio_record(dst, old_folio_state, anon_vma); > return 0; > } > > @@ -1328,11 +1326,11 @@ static int migrate_folio_unmap(new_folio_t get_new_folio, > VM_BUG_ON_FOLIO(folio_test_anon(src) && > !folio_test_ksm(src) && !anon_vma, src); > try_to_migrate(src, mode == MIGRATE_ASYNC ? TTU_BATCH_FLUSH : 0); > - old_page_state |= PAGE_WAS_MAPPED; > + old_folio_state |= FOLIO_WAS_MAPPED; > } > > if (!folio_mapped(src)) { > - __migrate_folio_record(dst, old_page_state, anon_vma); > + __migrate_folio_record(dst, old_folio_state, anon_vma); > return 0; > } > > @@ -1344,7 +1342,7 @@ static int migrate_folio_unmap(new_folio_t get_new_folio, > if (rc == -EAGAIN) > ret = NULL; > > - migrate_folio_undo_src(src, old_page_state & PAGE_WAS_MAPPED, > + migrate_folio_undo_src(src, old_folio_state & FOLIO_WAS_MAPPED, > anon_vma, locked, ret); > migrate_folio_undo_dst(dst, dst_locked, put_new_folio, private); > > @@ -1358,13 +1356,13 @@ static int migrate_folio_move(free_folio_t put_new_folio, unsigned long private, > struct list_head *ret) > { > int rc; > - int old_page_state = 0; > + int old_folio_state = 0; > struct anon_vma *anon_vma = NULL; > bool src_deferred_split = false; > bool src_partially_mapped = false; > struct list_head *prev; > > - __migrate_folio_extract(dst, &old_page_state, &anon_vma); > + __migrate_folio_extract(dst, &old_folio_state, &anon_vma); > prev = dst->lru.prev; > list_del(&dst->lru); > > @@ -1404,10 +1402,10 @@ static int migrate_folio_move(free_folio_t put_new_folio, unsigned long private, > * isolated from the unevictable LRU: but this case is the easiest. > */ > folio_add_lru(dst); > - if (old_page_state & PAGE_WAS_MLOCKED) > + if (old_folio_state & FOLIO_WAS_MLOCKED) > lru_add_drain(); > > - if (old_page_state & PAGE_WAS_MAPPED) > + if (old_folio_state & FOLIO_WAS_MAPPED) > remove_migration_ptes(src, dst, 0); > > out_unlock_both: > @@ -1439,11 +1437,11 @@ static int migrate_folio_move(free_folio_t put_new_folio, unsigned long private, > */ > if (rc == -EAGAIN) { > list_add(&dst->lru, prev); > - __migrate_folio_record(dst, old_page_state, anon_vma); > + __migrate_folio_record(dst, old_folio_state, anon_vma); > return rc; > } > > - migrate_folio_undo_src(src, old_page_state & PAGE_WAS_MAPPED, > + migrate_folio_undo_src(src, old_folio_state & FOLIO_WAS_MAPPED, > anon_vma, true, ret); > migrate_folio_undo_dst(dst, true, put_new_folio, private); > > @@ -1777,11 +1775,11 @@ static void migrate_folios_undo(struct list_head *src_folios, > dst = list_first_entry(dst_folios, struct folio, lru); > dst2 = list_next_entry(dst, lru); > list_for_each_entry_safe(folio, folio2, src_folios, lru) { > - int old_page_state = 0; > + int old_folio_state = 0; > struct anon_vma *anon_vma = NULL; > > - __migrate_folio_extract(dst, &old_page_state, &anon_vma); > - migrate_folio_undo_src(folio, old_page_state & PAGE_WAS_MAPPED, > + __migrate_folio_extract(dst, &old_folio_state, &anon_vma); > + migrate_folio_undo_src(folio, old_folio_state & FOLIO_WAS_MAPPED, > anon_vma, true, ret_folios); > list_del(&dst->lru); > migrate_folio_undo_dst(dst, true, put_new_folio, private);