Message ID | 49A3E7D8.4060108@redhat.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Avi Kivity schrieb: > Tomasz Chmielewski wrote: >> I'm trying to use ballooning with kvm-83. >> >> Although I'm able to limit the guest's memory, when I try to increase >> it right after that, I get "vballoon: page allocation failure. >> order:0" followed by a kernel panic. >> >> Is it expected? >> >> The guest is running Debian Lenny with 2.6.26 kernel. It had initially >> 256 MB memory. >> > > It's a guest bug, fixed in 2.6.27 by Indeed it works with 2.6.27. BTW, is it possible to "balloon" to a bigger amount of memory that what was available when the guest started? Or is it only possible to "shrink" and "grow" within initial memory available to the guest, but never "grow" beyond it? For example, if I start a 2.6.27 guest with 256 MB memory on a kvm-83 host, it is not possible to balloon to 300 MB?
Tomasz Chmielewski wrote: > > BTW, is it possible to "balloon" to a bigger amount of memory that > what was available when the guest started? No. The guest won't have its data structures set up to handle the extra memory. > > Or is it only possible to "shrink" and "grow" within initial memory > available to the guest, but never "grow" beyond it? > Right. One workaround is to start the guest with more memory than you need and immediately balloon it down. Hopefully we'll have memory hotplug one day so it can be fixed properly.
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index bfef604..62eab43 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -158,7 +158,7 @@ static inline s64 towards_target(struct virtio_balloon *vb) vb->vdev->config->get(vb->vdev, offsetof(struct virtio_balloon_config, num_pages), &v, sizeof(v)); - return v - vb->num_pages; + return (s64)v - vb->num_pages; }