![Rusty Russell](/assets/img/avatar_default.png)
After discussions with Anthony Liguori, it seems that the virtio balloon can be made even simpler. Here's my attempt. The device configuration tells the driver how much memory it should take from the guest (ie. balloon size). The guest feeds the page numbers it has taken via one virtqueue. A second virtqueue feeds the page numbers the driver wants back: if the device has the VIRTIO_BALLOON_F_MUST_TELL_HOST bit, then this queue is compulsory, otherwise it's advisory (and the guest can simply fault the pages back in). This driver can be enhanced later to deflate the balloon via a shrinker, oom callback or we could even go for a complete set of in-guest regulators. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
36 lines
943 B
Text
36 lines
943 B
Text
# Virtio always gets selected by whoever wants it.
|
|
config VIRTIO
|
|
tristate
|
|
|
|
# Similarly the virtio ring implementation.
|
|
config VIRTIO_RING
|
|
tristate
|
|
depends on VIRTIO
|
|
|
|
config VIRTIO_PCI
|
|
tristate "PCI driver for virtio devices (EXPERIMENTAL)"
|
|
depends on PCI && EXPERIMENTAL
|
|
select VIRTIO
|
|
select VIRTIO_RING
|
|
---help---
|
|
This drivers provides support for virtio based paravirtual device
|
|
drivers over PCI. This requires that your VMM has appropriate PCI
|
|
virtio backends. Most QEMU based VMMs should support these devices
|
|
(like KVM or Xen).
|
|
|
|
Currently, the ABI is not considered stable so there is no guarantee
|
|
that this version of the driver will work with your VMM.
|
|
|
|
If unsure, say M.
|
|
|
|
config VIRTIO_BALLOON
|
|
tristate "Virtio balloon driver (EXPERIMENTAL)"
|
|
select VIRTIO
|
|
select VIRTIO_RING
|
|
---help---
|
|
This driver supports increasing and decreasing the amount
|
|
of memory within a KVM guest.
|
|
|
|
If unsure, say M.
|
|
|