[PATCH v2 22/23] mm: rename CONFIG_MEMORY_BALLOON -> CONFIG_BALLOON

David Hildenbrand (Red Hat) posted 23 patches 3 weeks, 4 days ago
There is a newer version of this series
[PATCH v2 22/23] mm: rename CONFIG_MEMORY_BALLOON -> CONFIG_BALLOON
Posted by David Hildenbrand (Red Hat) 3 weeks, 4 days ago
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
Re: [PATCH v2 22/23] mm: rename CONFIG_MEMORY_BALLOON -> CONFIG_BALLOON
Posted by Lorenzo Stoakes 3 weeks, 4 days ago
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
>
Re: [PATCH v2 22/23] mm: rename CONFIG_MEMORY_BALLOON -> CONFIG_BALLOON
Posted by David Hildenbrand (Red Hat) 3 weeks, 4 days ago
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
Re: [PATCH v2 22/23] mm: rename CONFIG_MEMORY_BALLOON -> CONFIG_BALLOON
Posted by Lorenzo Stoakes 3 weeks, 4 days ago
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
Re: [PATCH v2 22/23] mm: rename CONFIG_MEMORY_BALLOON -> CONFIG_BALLOON
Posted by Michael S. Tsirkin 3 weeks, 4 days ago
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
Re: [PATCH v2 22/23] mm: rename CONFIG_MEMORY_BALLOON -> CONFIG_BALLOON
Posted by David Hildenbrand (Red Hat) 3 weeks, 4 days ago
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
Re: [PATCH v2 22/23] mm: rename CONFIG_MEMORY_BALLOON -> CONFIG_BALLOON
Posted by Michael S. Tsirkin 3 weeks, 4 days ago
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