On Mon, Jun 30, 2025 at 02:59:42PM +0200, David Hildenbrand wrote:
> The core will set PG_isolated only after mops->isolate_page() was
> called. In case of the balloon, that is where we will remove it from
> the balloon list. So we cannot have isolated pages in the balloon list.

Indeed, I see isolate_movable_ops_page() is the only place the beautiful +
consistent macro SetPageMovableOpsIsolated() is invoked, and
balloon_page_isolate() invokes list_del(&page->lru).

The only case it doesn't do that is one where it returns false so the flag
wouldn't be set.

>
> Let's drop this unnecessary check.
>
> Acked-by: Zi Yan <z...@nvidia.com>
> Signed-off-by: David Hildenbrand <da...@redhat.com>

So,

Reviewed-by: Lorenzo Stoakes <lorenzo.stoa...@oracle.com>

> ---
>  mm/balloon_compaction.c | 6 ------
>  1 file changed, 6 deletions(-)
>
> diff --git a/mm/balloon_compaction.c b/mm/balloon_compaction.c
> index d3e00731e2628..fcb60233aa35d 100644
> --- a/mm/balloon_compaction.c
> +++ b/mm/balloon_compaction.c
> @@ -94,12 +94,6 @@ size_t balloon_page_list_dequeue(struct balloon_dev_info 
> *b_dev_info,
>               if (!trylock_page(page))
>                       continue;
>
> -             if (IS_ENABLED(CONFIG_BALLOON_COMPACTION) &&
> -                 PageIsolated(page)) {
> -                     /* raced with isolation */
> -                     unlock_page(page);
> -                     continue;
> -             }
>               balloon_page_delete(page);
>               __count_vm_event(BALLOON_DEFLATE);
>               list_add(&page->lru, pages);
> --
> 2.49.0
>

Reply via email to