Files
Rafael Aquini 8180c6b6c9 mm/balloon_compaction: convert balloon_page_delete() to balloon_page_finalize()
JIRA: https://redhat.atlassian.net/browse/RHEL-145695

commit 15504b1163007bbfbd9a63460d5c14737c16e96d
Author: David Hildenbrand <david@redhat.com>
Date:   Fri Jul 4 12:24:56 2025 +0200

    mm/balloon_compaction: convert balloon_page_delete() to balloon_page_finalize()

    Let's move the removal of the page from the balloon list into the single
    caller, to remove the dependency on the PG_isolated flag and clarify
    locking requirements.

    Note that for now, balloon_page_delete() was used on two paths:

    (1) Removing a page from the balloon for deflation through
        balloon_page_list_dequeue()
    (2) Removing an isolated page from the balloon for migration in the
        per-driver migration handlers. Isolated pages were already removed from
        the balloon list during isolation.

    So instead of relying on the flag, we can just distinguish both cases
    directly and handle it accordingly in the caller.

    We'll shuffle the operations a bit such that they logically make more
    sense (e.g., remove from the list before clearing flags).

    In balloon migration functions we can now move the balloon_page_finalize()
    out of the balloon lock and perform the finalization just before dropping
    the balloon reference.

    Document that the page lock is currently required when modifying the
    movability aspects of a page; hopefully we can soon decouple this from the
    page lock.

    Link: https://lkml.kernel.org/r/20250704102524.326966-3-david@redhat.com
    Signed-off-by: David Hildenbrand <david@redhat.com>
    Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
    Cc: Alistair Popple <apopple@nvidia.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Brendan Jackman <jackmanb@google.com>
    Cc: Byungchul Park <byungchul@sk.com>
    Cc: Chengming Zhou <chengming.zhou@linux.dev>
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: Eugenio Pé rez <eperezma@redhat.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Gregory Price <gourry@gourry.net>
    Cc: Harry Yoo <harry.yoo@oracle.com>
    Cc: "Huang, Ying" <ying.huang@linux.alibaba.com>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Jason Gunthorpe <jgg@ziepe.ca>
    Cc: Jason Wang <jasowang@redhat.com>
    Cc: Jerrin Shaji George <jerrin.shaji-george@broadcom.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: John Hubbard <jhubbard@nvidia.com>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Joshua Hahn <joshua.hahnjy@gmail.com>
    Cc: Liam Howlett <liam.howlett@oracle.com>
    Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
    Cc: Mathew Brost <matthew.brost@intel.com>
    Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
    Cc: Miaohe Lin <linmiaohe@huawei.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Mike Rapoport <rppt@kernel.org>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: Naoya Horiguchi <nao.horiguchi@gmail.com>
    Cc: Nicholas Piggin <npiggin@gmail.com>
    Cc: Oscar Salvador <osalvador@suse.de>
    Cc: Peter Xu <peterx@redhat.com>
    Cc: Qi Zheng <zhengqi.arch@bytedance.com>
    Cc: Rakie Kim <rakie.kim@sk.com>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
    Cc: Shakeel Butt <shakeel.butt@linux.dev>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
    Cc: xu xin <xu.xin16@zte.com.cn>
    Cc: Zi Yan <ziy@nvidia.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

Signed-off-by: Rafael Aquini <raquini@redhat.com>
2026-07-31 14:50:27 -04:00
..
2025-03-07 14:04:22 +01:00