Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

The kernel configuration option:

VMware Balloon Driver (VMWARE_BALLOON) [N/m/y/?] (NEW) ?


This is VMware physical memory management driver which acts like a "balloon" that can be inflated to reclaim physical pages by reserving them in the guest and invalidating them in the monitor, freeing up the underlying machine pages so they can be allocated to other guests. The balloon can also be deflated to allow the guest to use more physical memory.

If unsure, say N.

To compile this driver as a module, choose M here: the module will be called vmw_balloon.

Type  : tristate
Prompt: VMware Balloon Driver
  Defined at drivers/misc/Kconfig:428
  Depends on: X86 [=y]  
    -> Device Drivers
      -> Misc devices

It's not fully clear, but it sounds like this should be set in the kernel of the guest OS, and not the host. Is this right?

share|improve this question
Is this a standard-mainstream-kernel? Which version? – Nils Sep 8 '12 at 19:32
It's 3.5.3 I'm configuring at the moment, and the tree has gentoo patches applied, but I don't believe this option is one of those. – Ben Voigt Sep 8 '12 at 19:58
up vote 2 down vote accepted

Yes, it is intended to run in the guest OS.

A small balloon module is loaded into the guest OS as a pseudo-device driver or kernel service. It has no external interface within the guest, and communicates with ESX Server via a private channel. When the server wants to reclaim memory, it instructs the driver to inflate'' by allocating pinned physical pages within the VM, using appropriate native interfaces. Similarly, the server maydeflate'' the balloon by instructing it to deallocate previously-allocated pages.


Our balloon drivers for the Linux, FreeBSD, and Windows operating systems poll the server once per second to obtain a target balloon size, and they limit their allocation rates adaptively to avoid stressing the guest OS.


share|improve this answer
Yeah, I've seen explanations of what the balloon is for. It's just that it requires communication between host and guest, and nothing identifies whether the kernel module is the host or guest piece. I was thinking guest, because I see no reason the host code would have to be inside the kernel. – Ben Voigt Sep 8 '12 at 19:53
Yes, you was right :) – Paweł Rumian Sep 8 '12 at 19:55
@BenVoigt well in the XEN-Dom0 there is balloon-code in the controlling VM (=Dom0) as well. If nothing special is configured, it will see all RAM, not assigned to other VMs as its own RAM. If a VM gets started, the RAM for Dom0 gets reduced... – Nils Sep 8 '12 at 20:16
@Nils: Yes, but (1) we're discussing VMware, not Xen, and (2) in Xen, DOM0 is a guest (the Xen hypervisor is the host) even if it has more privileges – Ben Voigt Sep 8 '12 at 21:20
@BenVoigt but ESX is a hypervisor, too - or am I wrong? – Nils Sep 8 '12 at 21:33

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.