]> git.proxmox.com Git - mirror_qemu.git/commit
exec: Introduce ram_block_discard_(disable|require)()
authorDavid Hildenbrand <david@redhat.com>
Fri, 26 Jun 2020 07:22:29 +0000 (09:22 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Thu, 2 Jul 2020 09:54:59 +0000 (05:54 -0400)
commitd24f31db3bcb46b09d8717850112d6a1bbee78f2
tree326b25f77d8d46e8e8385d1b6041b18c2e09eb76
parentaf1d039f6dd46276e5f4ffafd535f486936012db
exec: Introduce ram_block_discard_(disable|require)()

We want to replace qemu_balloon_inhibit() by something more generic.
Especially, we want to make sure that technologies that really rely on
RAM block discards to work reliably to run mutual exclusive with
technologies that effectively break it.

E.g., vfio will usually pin all guest memory, turning the virtio-balloon
basically useless and make the VM consume more memory than reported via
the balloon. While the balloon is special already (=> no guarantees, same
behavior possible afer reboots and with huge pages), this will be
different, especially, with virtio-mem.

Let's implement a way such that we can make both types of technology run
mutually exclusive. We'll convert existing balloon inhibitors in successive
patches and add some new ones. Add the check to
qemu_balloon_is_inhibited() for now. We might want to make
virtio-balloon an acutal inhibitor in the future - however, that
requires more thought to not break existing setups.

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20200626072248.78761-3-david@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
balloon.c
exec.c
include/exec/memory.h