Let's make it consistent with the naming of the files but also with the
naming of CONFIG_BALLOON_MIGRATION.
While at it, add a "/* CONFIG_BALLOON */".
Signed-off-by: David Hildenbrand (Red Hat) <david@kernel.org>
---
arch/powerpc/platforms/pseries/Kconfig | 2 +-
drivers/misc/Kconfig | 2 +-
drivers/virtio/Kconfig | 2 +-
include/linux/vm_event_item.h | 4 ++--
mm/Kconfig | 4 ++--
mm/Makefile | 2 +-
mm/vmstat.c | 4 ++--
7 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/arch/powerpc/platforms/pseries/Kconfig b/arch/powerpc/platforms/pseries/Kconfig
index 3e042218d6cd8..f7052b131a4c5 100644
--- a/arch/powerpc/platforms/pseries/Kconfig
+++ b/arch/powerpc/platforms/pseries/Kconfig
@@ -120,7 +120,7 @@ config PPC_SMLPAR
config CMM
tristate "Collaborative memory management"
depends on PPC_SMLPAR
- select MEMORY_BALLOON
+ select BALLOON
default y
help
Select this option, if you want to enable the kernel interface
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index d7d41b054b982..5cc79d1517af5 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -410,7 +410,7 @@ config DS1682
config VMWARE_BALLOON
tristate "VMware Balloon Driver"
depends on VMWARE_VMCI && X86 && HYPERVISOR_GUEST
- select MEMORY_BALLOON
+ select BALLOON
help
This is VMware physical memory management driver which acts
like a "balloon" that can be inflated to reclaim physical pages
diff --git a/drivers/virtio/Kconfig b/drivers/virtio/Kconfig
index 6db5235a7693d..ce5bc0d9ea287 100644
--- a/drivers/virtio/Kconfig
+++ b/drivers/virtio/Kconfig
@@ -112,7 +112,7 @@ config VIRTIO_PMEM
config VIRTIO_BALLOON
tristate "Virtio balloon driver"
depends on VIRTIO
- select MEMORY_BALLOON
+ select BALLOON
select PAGE_REPORTING
help
This driver supports increasing and decreasing the amount
diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h
index fca34d3473b6b..22a139f82d75f 100644
--- a/include/linux/vm_event_item.h
+++ b/include/linux/vm_event_item.h
@@ -122,13 +122,13 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
THP_SWPOUT,
THP_SWPOUT_FALLBACK,
#endif
-#ifdef CONFIG_MEMORY_BALLOON
+#ifdef CONFIG_BALLOON
BALLOON_INFLATE,
BALLOON_DEFLATE,
#ifdef CONFIG_BALLOON_MIGRATION
BALLOON_MIGRATE,
#endif /* CONFIG_BALLOON_MIGRATION */
-#endif
+#endif /* CONFIG_BALLOON */
#ifdef CONFIG_DEBUG_TLBFLUSH
NR_TLB_REMOTE_FLUSH, /* cpu tried to flush others' tlbs */
NR_TLB_REMOTE_FLUSH_RECEIVED,/* cpu received ipi for flush */
diff --git a/mm/Kconfig b/mm/Kconfig
index 460a148d5b71a..8e23af521605e 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -593,7 +593,7 @@ config SPLIT_PMD_PTLOCKS
#
# support for memory balloon
-config MEMORY_BALLOON
+config BALLOON
bool
#
@@ -601,7 +601,7 @@ config MEMORY_BALLOON
config BALLOON_MIGRATION
bool "Allow for balloon memory migration"
default y
- depends on MIGRATION && MEMORY_BALLOON
+ depends on MIGRATION && BALLOON
help
Allow for migration of pages inflated in a memory balloon such that
they can be allocated from memory areas only available for movable
diff --git a/mm/Makefile b/mm/Makefile
index 1e31e0a528dc1..0d85b10dbdde4 100644
--- a/mm/Makefile
+++ b/mm/Makefile
@@ -122,7 +122,7 @@ obj-$(CONFIG_CMA) += cma.o
obj-$(CONFIG_NUMA) += numa.o
obj-$(CONFIG_NUMA_MEMBLKS) += numa_memblks.o
obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
-obj-$(CONFIG_MEMORY_BALLOON) += balloon.o
+obj-$(CONFIG_BALLOON) += balloon.o
obj-$(CONFIG_PAGE_EXTENSION) += page_ext.o
obj-$(CONFIG_PAGE_TABLE_CHECK) += page_table_check.o
obj-$(CONFIG_CMA_DEBUGFS) += cma_debug.o
diff --git a/mm/vmstat.c b/mm/vmstat.c
index e96a344ab5974..0f64c898f79f8 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -1419,13 +1419,13 @@ const char * const vmstat_text[] = {
[I(THP_SWPOUT)] = "thp_swpout",
[I(THP_SWPOUT_FALLBACK)] = "thp_swpout_fallback",
#endif
-#ifdef CONFIG_MEMORY_BALLOON
+#ifdef CONFIG_BALLOON
[I(BALLOON_INFLATE)] = "balloon_inflate",
[I(BALLOON_DEFLATE)] = "balloon_deflate",
#ifdef CONFIG_BALLOON_MIGRATION
[I(BALLOON_MIGRATE)] = "balloon_migrate",
#endif /* CONFIG_BALLOON_MIGRATION */
-#endif /* CONFIG_MEMORY_BALLOON */
+#endif /* CONFIG_BALLOON */
#ifdef CONFIG_DEBUG_TLBFLUSH
[I(NR_TLB_REMOTE_FLUSH)] = "nr_tlb_remote_flush",
[I(NR_TLB_REMOTE_FLUSH_RECEIVED)] = "nr_tlb_remote_flush_received",
--
2.52.0
On Thu, Jan 15, 2026 at 10:20:12AM +0100, David Hildenbrand (Red Hat) wrote:
> Let's make it consistent with the naming of the files but also with the
> naming of CONFIG_BALLOON_MIGRATION.
>
> While at it, add a "/* CONFIG_BALLOON */".
Probably not relevant but cheap for me to share :) so grepped for
'memory_balloon' and saw:
include/uapi/linux/virtio_ids.h
44:#define VIRTIO_ID_MEMORY_BALLOON 13 /* virtio memory balloon */
This maybe relevant (I guess this isn't actually used anywhere?) though
interesting there is also VIRTIO_ID_BALLOON... hmm :)
The below doesn't look relevant at all.
drivers/virt/vboxguest/vmmdev.h
326:#define VMMDEV_MEMORY_BALLOON_CHUNK_SIZE (1048576)
327:#define VMMDEV_MEMORY_BALLOON_CHUNK_PAGES (1048576 / 4096)
355: u64 phys_page[VMMDEV_MEMORY_BALLOON_CHUNK_PAGES];
drivers/virt/vboxguest/vboxguest_core.c
278: pages = kmalloc_array(VMMDEV_MEMORY_BALLOON_CHUNK_PAGES,
286: req->pages = VMMDEV_MEMORY_BALLOON_CHUNK_PAGES;
288: for (i = 0; i < VMMDEV_MEMORY_BALLOON_CHUNK_PAGES; i++) {
333: req->pages = VMMDEV_MEMORY_BALLOON_CHUNK_PAGES;
335: for (i = 0; i < VMMDEV_MEMORY_BALLOON_CHUNK_PAGES; i++)
344: for (i = 0; i < VMMDEV_MEMORY_BALLOON_CHUNK_PAGES; i++)
>
> Signed-off-by: David Hildenbrand (Red Hat) <david@kernel.org>
Otherwise LGTM, so:
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
> ---
> arch/powerpc/platforms/pseries/Kconfig | 2 +-
> drivers/misc/Kconfig | 2 +-
> drivers/virtio/Kconfig | 2 +-
> include/linux/vm_event_item.h | 4 ++--
> mm/Kconfig | 4 ++--
> mm/Makefile | 2 +-
> mm/vmstat.c | 4 ++--
> 7 files changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/arch/powerpc/platforms/pseries/Kconfig b/arch/powerpc/platforms/pseries/Kconfig
> index 3e042218d6cd8..f7052b131a4c5 100644
> --- a/arch/powerpc/platforms/pseries/Kconfig
> +++ b/arch/powerpc/platforms/pseries/Kconfig
> @@ -120,7 +120,7 @@ config PPC_SMLPAR
> config CMM
> tristate "Collaborative memory management"
> depends on PPC_SMLPAR
> - select MEMORY_BALLOON
> + select BALLOON
> default y
> help
> Select this option, if you want to enable the kernel interface
> diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
> index d7d41b054b982..5cc79d1517af5 100644
> --- a/drivers/misc/Kconfig
> +++ b/drivers/misc/Kconfig
> @@ -410,7 +410,7 @@ config DS1682
> config VMWARE_BALLOON
> tristate "VMware Balloon Driver"
> depends on VMWARE_VMCI && X86 && HYPERVISOR_GUEST
> - select MEMORY_BALLOON
> + select BALLOON
> help
> This is VMware physical memory management driver which acts
> like a "balloon" that can be inflated to reclaim physical pages
> diff --git a/drivers/virtio/Kconfig b/drivers/virtio/Kconfig
> index 6db5235a7693d..ce5bc0d9ea287 100644
> --- a/drivers/virtio/Kconfig
> +++ b/drivers/virtio/Kconfig
> @@ -112,7 +112,7 @@ config VIRTIO_PMEM
> config VIRTIO_BALLOON
> tristate "Virtio balloon driver"
> depends on VIRTIO
> - select MEMORY_BALLOON
> + select BALLOON
> select PAGE_REPORTING
> help
> This driver supports increasing and decreasing the amount
> diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h
> index fca34d3473b6b..22a139f82d75f 100644
> --- a/include/linux/vm_event_item.h
> +++ b/include/linux/vm_event_item.h
> @@ -122,13 +122,13 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
> THP_SWPOUT,
> THP_SWPOUT_FALLBACK,
> #endif
> -#ifdef CONFIG_MEMORY_BALLOON
> +#ifdef CONFIG_BALLOON
> BALLOON_INFLATE,
> BALLOON_DEFLATE,
> #ifdef CONFIG_BALLOON_MIGRATION
> BALLOON_MIGRATE,
> #endif /* CONFIG_BALLOON_MIGRATION */
> -#endif
> +#endif /* CONFIG_BALLOON */
> #ifdef CONFIG_DEBUG_TLBFLUSH
> NR_TLB_REMOTE_FLUSH, /* cpu tried to flush others' tlbs */
> NR_TLB_REMOTE_FLUSH_RECEIVED,/* cpu received ipi for flush */
> diff --git a/mm/Kconfig b/mm/Kconfig
> index 460a148d5b71a..8e23af521605e 100644
> --- a/mm/Kconfig
> +++ b/mm/Kconfig
> @@ -593,7 +593,7 @@ config SPLIT_PMD_PTLOCKS
>
> #
> # support for memory balloon
> -config MEMORY_BALLOON
> +config BALLOON
> bool
>
> #
> @@ -601,7 +601,7 @@ config MEMORY_BALLOON
> config BALLOON_MIGRATION
> bool "Allow for balloon memory migration"
> default y
> - depends on MIGRATION && MEMORY_BALLOON
> + depends on MIGRATION && BALLOON
> help
> Allow for migration of pages inflated in a memory balloon such that
> they can be allocated from memory areas only available for movable
> diff --git a/mm/Makefile b/mm/Makefile
> index 1e31e0a528dc1..0d85b10dbdde4 100644
> --- a/mm/Makefile
> +++ b/mm/Makefile
> @@ -122,7 +122,7 @@ obj-$(CONFIG_CMA) += cma.o
> obj-$(CONFIG_NUMA) += numa.o
> obj-$(CONFIG_NUMA_MEMBLKS) += numa_memblks.o
> obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
> -obj-$(CONFIG_MEMORY_BALLOON) += balloon.o
> +obj-$(CONFIG_BALLOON) += balloon.o
> obj-$(CONFIG_PAGE_EXTENSION) += page_ext.o
> obj-$(CONFIG_PAGE_TABLE_CHECK) += page_table_check.o
> obj-$(CONFIG_CMA_DEBUGFS) += cma_debug.o
> diff --git a/mm/vmstat.c b/mm/vmstat.c
> index e96a344ab5974..0f64c898f79f8 100644
> --- a/mm/vmstat.c
> +++ b/mm/vmstat.c
> @@ -1419,13 +1419,13 @@ const char * const vmstat_text[] = {
> [I(THP_SWPOUT)] = "thp_swpout",
> [I(THP_SWPOUT_FALLBACK)] = "thp_swpout_fallback",
> #endif
> -#ifdef CONFIG_MEMORY_BALLOON
> +#ifdef CONFIG_BALLOON
> [I(BALLOON_INFLATE)] = "balloon_inflate",
> [I(BALLOON_DEFLATE)] = "balloon_deflate",
> #ifdef CONFIG_BALLOON_MIGRATION
> [I(BALLOON_MIGRATE)] = "balloon_migrate",
> #endif /* CONFIG_BALLOON_MIGRATION */
> -#endif /* CONFIG_MEMORY_BALLOON */
> +#endif /* CONFIG_BALLOON */
> #ifdef CONFIG_DEBUG_TLBFLUSH
> [I(NR_TLB_REMOTE_FLUSH)] = "nr_tlb_remote_flush",
> [I(NR_TLB_REMOTE_FLUSH_RECEIVED)] = "nr_tlb_remote_flush_received",
> --
> 2.52.0
>
On 1/15/26 14:55, Lorenzo Stoakes wrote: > On Thu, Jan 15, 2026 at 10:20:12AM +0100, David Hildenbrand (Red Hat) wrote: >> Let's make it consistent with the naming of the files but also with the >> naming of CONFIG_BALLOON_MIGRATION. >> >> While at it, add a "/* CONFIG_BALLOON */". > > Probably not relevant but cheap for me to share :) so grepped for > 'memory_balloon' and saw: > > include/uapi/linux/virtio_ids.h > 44:#define VIRTIO_ID_MEMORY_BALLOON 13 /* virtio memory balloon */ > > This maybe relevant (I guess this isn't actually used anywhere?) though > interesting there is also VIRTIO_ID_BALLOON... hmm :) Yeah, we want to leave the virtio stuff alone. Now you'll learn something you probably wish you wouldn't know: As you spotted, there is #define VIRTIO_ID_BALLOON 5 /* virtio balloon */ And #define VIRTIO_ID_MEMORY_BALLOON 13 /* virtio memory balloon */ The virtio-spec [1] defines ID 5 to be the "Traditional Memory Balloon Device". And in there, we document that "This is the traditional balloon device. The device number 13 is reserved for a new memory balloon interface, with different semantics, which is expected in a future version of the standard. " That's in the spec already like, forever. Likely, at some point someone wanted to implement a new version (for whatever reason) and defined ID 13. But that never happened. So now we have these beautiful two device IDs. I'll note that the spec also defines a "DEVICE ID of Virtio Cpu balloon device as 47". But no changes really happened in the spec with that for the last two years (only the id is reserved). [1] https://docs.oasis-open.org/virtio/virtio/v1.4/virtio-v1.4.html#x1-4260001 -- Cheers David
On Thu, Jan 15, 2026 at 05:33:56PM +0100, David Hildenbrand (Red Hat) wrote: > On 1/15/26 14:55, Lorenzo Stoakes wrote: > > On Thu, Jan 15, 2026 at 10:20:12AM +0100, David Hildenbrand (Red Hat) wrote: > > > Let's make it consistent with the naming of the files but also with the > > > naming of CONFIG_BALLOON_MIGRATION. > > > > > > While at it, add a "/* CONFIG_BALLOON */". > > > > Probably not relevant but cheap for me to share :) so grepped for > > 'memory_balloon' and saw: > > > > include/uapi/linux/virtio_ids.h > > 44:#define VIRTIO_ID_MEMORY_BALLOON 13 /* virtio memory balloon */ > > > > This maybe relevant (I guess this isn't actually used anywhere?) though > > interesting there is also VIRTIO_ID_BALLOON... hmm :) > > Yeah, we want to leave the virtio stuff alone. > > Now you'll learn something you probably wish you wouldn't know: > > As you spotted, there is > > #define VIRTIO_ID_BALLOON 5 /* virtio balloon */ > > And > > #define VIRTIO_ID_MEMORY_BALLOON 13 /* virtio memory balloon */ > > > The virtio-spec [1] defines ID 5 to be the "Traditional Memory Balloon Device". > > And in there, we document that > > "This is the traditional balloon device. The device number 13 is reserved for > a new memory balloon interface, with different semantics, which is expected > in a future version of the standard. " > > That's in the spec already like, forever. Likely, at some point someone wanted to implement a > new version (for whatever reason) and defined ID 13. But that never happened. > > So now we have these beautiful two device IDs. > > I'll note that the spec also defines a "DEVICE ID of Virtio Cpu balloon device as 47". But > no changes really happened in the spec with that for the last two years (only the > id is reserved). > > > [1] https://docs.oasis-open.org/virtio/virtio/v1.4/virtio-v1.4.html#x1-4260001 > Lord haha well that explains that ;) > -- > Cheers > > David Cheers, Lorenzo
On Thu, Jan 15, 2026 at 05:33:56PM +0100, David Hildenbrand (Red Hat) wrote: > I'll note that the spec also defines a "DEVICE ID of Virtio Cpu balloon device as 47". But > no changes really happened in the spec with that for the last two years (only the > id is reserved). > > > [1] https://docs.oasis-open.org/virtio/virtio/v1.4/virtio-v1.4.html#x1-4260001 Maybe that's a good reason to keep calling it "memory balloon". And hey, there's also the floating, pops easily kind and maybe someone will use those with linux in some way :) > -- > Cheers > > David
On 1/15/26 17:53, Michael S. Tsirkin wrote: > On Thu, Jan 15, 2026 at 05:33:56PM +0100, David Hildenbrand (Red Hat) wrote: >> I'll note that the spec also defines a "DEVICE ID of Virtio Cpu balloon device as 47". But >> no changes really happened in the spec with that for the last two years (only the >> id is reserved). >> >> >> [1] https://docs.oasis-open.org/virtio/virtio/v1.4/virtio-v1.4.html#x1-4260001 > > > Maybe that's a good reason to keep calling it "memory balloon". > > And hey, there's also the floating, pops easily kind and maybe someone > will use those with linux in some way :) There is only one true balloon ;) the others can specify it as CPU_BALLOON. If that ever sees the light of day. -- Cheers David
On Thu, Jan 15, 2026 at 05:33:56PM +0100, David Hildenbrand (Red Hat) wrote: > On 1/15/26 14:55, Lorenzo Stoakes wrote: > > On Thu, Jan 15, 2026 at 10:20:12AM +0100, David Hildenbrand (Red Hat) wrote: > > > Let's make it consistent with the naming of the files but also with the > > > naming of CONFIG_BALLOON_MIGRATION. > > > > > > While at it, add a "/* CONFIG_BALLOON */". > > > > Probably not relevant but cheap for me to share :) so grepped for > > 'memory_balloon' and saw: > > > > include/uapi/linux/virtio_ids.h > > 44:#define VIRTIO_ID_MEMORY_BALLOON 13 /* virtio memory balloon */ > > > > This maybe relevant (I guess this isn't actually used anywhere?) though > > interesting there is also VIRTIO_ID_BALLOON... hmm :) > > Yeah, we want to leave the virtio stuff alone. > > Now you'll learn something you probably wish you wouldn't know: > > As you spotted, there is > > #define VIRTIO_ID_BALLOON 5 /* virtio balloon */ > > And > > #define VIRTIO_ID_MEMORY_BALLOON 13 /* virtio memory balloon */ > > > The virtio-spec [1] defines ID 5 to be the "Traditional Memory Balloon Device". > > And in there, we document that > > "This is the traditional balloon device. The device number 13 is reserved for > a new memory balloon interface, with different semantics, which is expected > in a future version of the standard. " > > That's in the spec already like, forever. Likely, at some point someone wanted to implement a > new version (for whatever reason) and defined ID 13. But that never happened. yea Rusty wanted to do that. balloon has lots of weird bugs like it does not really works with large guests. We really need to get around to fixing this, and maybe it's cleaner to do that with a new ID than trying and failing to use the old one, was the thinking. > So now we have these beautiful two device IDs. > > I'll note that the spec also defines a "DEVICE ID of Virtio Cpu balloon device as 47". But > no changes really happened in the spec with that for the last two years (only the > id is reserved). > > > [1] https://docs.oasis-open.org/virtio/virtio/v1.4/virtio-v1.4.html#x1-4260001 > > -- > Cheers > > David
© 2016 - 2026 Red Hat, Inc.