[PATCH RFC 18/29] mm: remove __folio_test_movable()

David Hildenbrand david at redhat.com
Mon Jun 30 20:38:39 AEST 2025


> @@ -1164,7 +1148,6 @@ static int migrate_folio_unmap(new_folio_t get_new_folio,
>   	int rc = -EAGAIN;
>   	int old_page_state = 0;
>   	struct anon_vma *anon_vma = NULL;
> -	bool is_lru = data_race(!__folio_test_movable(src));
>   	bool locked = false;
>   	bool dst_locked = false;
>   
> @@ -1265,7 +1248,7 @@ static int migrate_folio_unmap(new_folio_t get_new_folio,
>   		goto out;
>   	dst_locked = true;
>   
> -	if (unlikely(!is_lru)) {
> +	if (unlikely(page_has_movable_ops(&dst->page))) {

While doing more testing, I found a weird bug where we end up having 
balloon pages isolated forever, and never putback/migrated. So neither 
the balloon can deflate them nor the migration migrate them.

This line here must be

if (unlikely(page_has_movable_ops(&src->page))) {

But I am not sure yet if that's the issue I am chasing :)

-- 
Cheers,

David / dhildenb



More information about the Linuxppc-dev mailing list