virtio: balloon driver
authorRusty Russell <rusty@rustcorp.com.au>
Tue, 5 Feb 2008 04:50:12 +0000 (23:50 -0500)
committerRusty Russell <rusty@rustcorp.com.au>
Mon, 4 Feb 2008 12:50:13 +0000 (23:50 +1100)
commit6b35e40767c6c1ac783330109ae8e0c09ea6bc82
treee820d770894cb945c3070fa6739b0149b1bfa2f9
parent55a7c066041e7850948d29ed813f62821a9ec046
virtio: balloon driver

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>
drivers/virtio/Kconfig
drivers/virtio/Makefile
drivers/virtio/virtio_balloon.c [new file with mode: 0644]
include/linux/virtio_balloon.h [new file with mode: 0644]