• Adam Litke's avatar
    virtio: Add memory statistics reporting to the balloon driver (V4) · 9564e138
    Adam Litke authored
    Changes since V3:
     - Do not do endian conversions as they will be done in the host
     - Report stats that reference a quantity of memory in bytes
     - Minor coding style updates
    
    Changes since V2:
     - Increase stat field size to 64 bits
     - Report all sizes in kb (not pages)
     - Drop anon_pages stat and fix endianness conversion
    
    Changes since V1:
     - Use a virtqueue instead of the device config space
    
    When using ballooning to manage overcommitted memory on a host, a system for
    guests to communicate their memory usage to the host can provide information
    that will minimize the impact of ballooning on the guests.  The current method
    employs a daemon running in each guest that communicates memory statistics to a
    host daemon at a specified time interval.  The host daemon aggregates this
    information and inflates and/or deflates balloons according to the level of
    host memory pressure.  This approach is effective but overly complex since a
    daemon must be installed inside each guest and coordinated to communicate with
    the host.  A simpler approach is to collect memory statistics in the virtio
    balloon driver and communicate them directly to the hypervisor.
    
    This patch enables the guest-side support by adding stats collection and
    reporting to the virtio balloon driver.
    Signed-off-by: default avatarAdam Litke <agl@us.ibm.com>
    Cc: Anthony Liguori <anthony@codemonkey.ws>
    Cc: virtualization@lists.linux-foundation.org
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (minor fixes)
    9564e138
virtio_balloon.c 9.36 KB