Thread (32 messages) 32 messages, 3 authors, 2012-09-12

Re: [PATCH] virtio-balloon spec: provide a version of the "silent deflate" feature that works

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2012-09-07 05:40:47
Also in: kvm, lkml

On Fri, Sep 07, 2012 at 09:15:46AM +0930, Rusty Russell wrote:
Paolo Bonzini [off-list ref] writes:
quoted
Instead, VIRTIO_NET_F_HOST_MUST_SEND_GARP would be a "negative" feature:
if set, the host _may not_ rely on the guest to send a gARP.  Similarly
if VIRTIO_BALLOON_F_MUST_TELL_HOST is set, the guest _may not_ use
ballooned pages directly.

There are _no_ other negative features besides
VIRTIO_BALLOON_F_MUST_TELL_HOST in the spec, and for a good
reason---because they're broken.

(Hmm, actually we have one, VIRTIO_BLK_F_RO.  It is also a bit broken,
but it is not so important because it depends on user input more than
hypervisor version).
Yes, this is the key observation, and an important lesson for the
future.  Thanks!
Note that these two negative features were in the original spec, where
it's assumed that every device supports them.  That's not explicitly
documented, however.
I'm curious what would we do for the future? I tried to imagine that _RO
was not in the original spec, so virtio-blk expects a r/w device.
Now we can not add _RW - old hypervisors do not set it, and old
drivers do not ack it.
What would a new flag with equivalent functionality be?
I like killing the totally unused feature.

Cheers,
Rusty.
I tried verifying that it is unused. And found this:
Linux drivers currently try to ack this feature if it is there,
so do BSD drivers. Both from v1. And they tell host before leak.
So that is fine.

But looking at windows drivers:
https://github.com/YanVugenfirer/kvm-guest-drivers-windows/blob/master/Balloon/sys/balloon.c
they do *not* ack this bit, and BalloonLeak calls TellHost at the last
line.

So it looks like a bug: we should teach driver to tell host first on leak?
Yan, Vadim, can you comment please?

Also if true, looks like this bit will be useful to detect a fixed driver on
the hypervisor side - to avoid unmapping such pages? Rusty what do you
think?

-- 
MST
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help