• Amit Shah's avatar
    virtio: balloon: leak / fill balloon across S4 · 4eb05d56
    Amit Shah authored
    commit e562966d added support for S4 to
    the balloon driver.  The freeze function did nothing to free the pages,
    since reclaiming the pages from the host to immediately give them back
    (if S4 was successful) seemed wasteful.  Also, if S4 wasn't successful,
    the guest would have to re-fill the balloon.  On restore, the pages were
    supposed to be marked freed and the free page counters were incremented
    to reflect the balloon was totally deflated.
    
    However, this wasn't done right.  The pages that were earlier taken away
    from the guest during a balloon inflation operation were just shown as
    used pages after a successful restore from S4.  Just a fancy way of
    leaking lots of memory.
    
    Instead of trying that, just leak the balloon on freeze and fill it on
    restore/thaw paths.  This works properly now.  The optimisation to not
    leak can be added later on after a bit of refactoring of the code.
    Signed-off-by: default avatarAmit Shah <amit.shah@redhat.com>
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    4eb05d56
virtio_balloon.c 11 KB