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 >