]> www.infradead.org Git - users/willy/linux.git/commitdiff
hv_balloon: update the NR_BALLOON_PAGES state
authorNico Pache <npache@redhat.com>
Fri, 14 Mar 2025 21:37:56 +0000 (15:37 -0600)
committerAndrew Morton <akpm@linux-foundation.org>
Sat, 22 Mar 2025 05:03:13 +0000 (22:03 -0700)
Update the NR_BALLOON_PAGES counter when pages are added to or removed
from the Hyper-V balloon.

Link: https://lkml.kernel.org/r/20250314213757.244258-4-npache@redhat.com
Signed-off-by: Nico Pache <npache@redhat.com>
Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Cc: Alexander Atanasov <alexander.atanasov@virtuozzo.com>
Cc: Chengming Zhou <chengming.zhou@linux.dev>
Cc: David Hildenbrand <david@redhat.com>
Cc: Dexuan Cui <decui@microsoft.com>
Cc: Haiyang Zhang <haiyangz@microsoft.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Juegren Gross <jgross@suse.com>
Cc: Kanchana P Sridhar <kanchana.p.sridhar@intel.com>
Cc: K. Y. Srinivasan <kys@microsoft.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Nhat Pham <nphamcs@gmail.com>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Cc: Shakeel Butt <shakeel.butt@linux.dev>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Wei Liu <wei.liu@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/hv/hv_balloon.c

index fec2f18679e3ffd63db3d931cf37548280514927..2b4080e51f97c30e7adb06faa56b1403bc08b53c 100644 (file)
@@ -1192,6 +1192,7 @@ static void free_balloon_pages(struct hv_dynmem_device *dm,
                __ClearPageOffline(pg);
                __free_page(pg);
                dm->num_pages_ballooned--;
+               mod_node_page_state(page_pgdat(pg), NR_BALLOON_PAGES, -1);
                adjust_managed_page_count(pg, 1);
        }
 }
@@ -1221,6 +1222,7 @@ static unsigned int alloc_balloon_pages(struct hv_dynmem_device *dm,
                        return i * alloc_unit;
 
                dm->num_pages_ballooned += alloc_unit;
+               mod_node_page_state(page_pgdat(pg), NR_BALLOON_PAGES, alloc_unit);
 
                /*
                 * If we allocatted 2M pages; split them so we