mm: migrate: use __folio_test_movable()

Use __folio_test_movable(), no need to convert from folio to page again.

Link: https://lkml.kernel.org/r/20230913095131.2426871-6-wangkefeng.wang@huawei.com
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Cc: "Huang, Ying" <ying.huang@intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Kefeng Wang 2023-09-13 17:51:28 +08:00 committed by Andrew Morton
parent 73eab3ca48
commit 7e2a5e5ab2

View file

@ -157,8 +157,8 @@ void putback_movable_pages(struct list_head *l)
list_del(&folio->lru); list_del(&folio->lru);
/* /*
* We isolated non-lru movable folio so here we can use * We isolated non-lru movable folio so here we can use
* __PageMovable because LRU folio's mapping cannot have * __folio_test_movable because LRU folio's mapping cannot
* PAGE_MAPPING_MOVABLE. * have PAGE_MAPPING_MOVABLE.
*/ */
if (unlikely(__folio_test_movable(folio))) { if (unlikely(__folio_test_movable(folio))) {
VM_BUG_ON_FOLIO(!folio_test_isolated(folio), folio); VM_BUG_ON_FOLIO(!folio_test_isolated(folio), folio);
@ -946,7 +946,7 @@ static int move_to_new_folio(struct folio *dst, struct folio *src,
enum migrate_mode mode) enum migrate_mode mode)
{ {
int rc = -EAGAIN; int rc = -EAGAIN;
bool is_lru = !__PageMovable(&src->page); bool is_lru = !__folio_test_movable(src);
VM_BUG_ON_FOLIO(!folio_test_locked(src), src); VM_BUG_ON_FOLIO(!folio_test_locked(src), src);
VM_BUG_ON_FOLIO(!folio_test_locked(dst), dst); VM_BUG_ON_FOLIO(!folio_test_locked(dst), dst);
@ -993,7 +993,7 @@ static int move_to_new_folio(struct folio *dst, struct folio *src,
* src is freed; but stats require that PageAnon be left as PageAnon. * src is freed; but stats require that PageAnon be left as PageAnon.
*/ */
if (rc == MIGRATEPAGE_SUCCESS) { if (rc == MIGRATEPAGE_SUCCESS) {
if (__PageMovable(&src->page)) { if (__folio_test_movable(src)) {
VM_BUG_ON_FOLIO(!folio_test_isolated(src), src); VM_BUG_ON_FOLIO(!folio_test_isolated(src), src);
/* /*
@ -1085,7 +1085,7 @@ static void migrate_folio_done(struct folio *src,
/* /*
* Compaction can migrate also non-LRU pages which are * Compaction can migrate also non-LRU pages which are
* not accounted to NR_ISOLATED_*. They can be recognized * not accounted to NR_ISOLATED_*. They can be recognized
* as __PageMovable * as __folio_test_movable
*/ */
if (likely(!__folio_test_movable(src))) if (likely(!__folio_test_movable(src)))
mod_node_page_state(folio_pgdat(src), NR_ISOLATED_ANON + mod_node_page_state(folio_pgdat(src), NR_ISOLATED_ANON +
@ -1106,7 +1106,7 @@ static int migrate_folio_unmap(new_folio_t get_new_folio,
int rc = -EAGAIN; int rc = -EAGAIN;
int page_was_mapped = 0; int page_was_mapped = 0;
struct anon_vma *anon_vma = NULL; struct anon_vma *anon_vma = NULL;
bool is_lru = !__PageMovable(&src->page); bool is_lru = !__folio_test_movable(src);
bool locked = false; bool locked = false;
bool dst_locked = false; bool dst_locked = false;
@ -1264,7 +1264,7 @@ static int migrate_folio_move(free_folio_t put_new_folio, unsigned long private,
int rc; int rc;
int page_was_mapped = 0; int page_was_mapped = 0;
struct anon_vma *anon_vma = NULL; struct anon_vma *anon_vma = NULL;
bool is_lru = !__PageMovable(&src->page); bool is_lru = !__folio_test_movable(src);
struct list_head *prev; struct list_head *prev;
__migrate_folio_extract(dst, &page_was_mapped, &anon_vma); __migrate_folio_extract(dst, &page_was_mapped, &anon_vma);