public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org, virtualization@lists.linux-foundation.org
Subject: Re: [PATCH] virtio-balloon spec: rework VIRTIO_BALLOON_F_MUST_TELL_HOST feature, support silent deflation
Date: Tue, 28 May 2013 13:45:03 +0300	[thread overview]
Message-ID: <20130528104503.GD5467@redhat.com> (raw)
In-Reply-To: <51A46D0B.9080508@redhat.com>

On Tue, May 28, 2013 at 10:38:35AM +0200, Paolo Bonzini wrote:
> Il 27/05/2013 19:02, Michael S. Tsirkin ha scritto:
> >>> So if we don't want to require all guests to tell host
> >>> first, all we need to do is admit it's not a bug.
> >>
> >> I think we want the possibility for the host to require that.
> > 
> > But why? TELL_HOST makes some optimizations possible, but if
> > guest won't cooperate, balloon is useless anyway.
> 
> If the guest won't tell host and still propose the feature,

Ack feature but don't tell host? That would be a clear guest bug.
AFAIK that's not what windows drivers do.
Am I wrong?

> then we can
> crash it.  So we need to know what the guest is going to do, in order to
> enable/disable the optimization.
> 
> > If guest cooperates we don't have to require anything,
> > just go with what guest tells us it will do.
> 
> Yes.
> 
> >>> Please see
> >>> 	[PATCH] virtio-spec: balloon: MUST_TELL_HOST is optional
> >>> that does exactly this.
> >>
> >> That patch mandates a change in guest behavior that is not compatible
> >> with the existing Windows driver.  Mine doesn't.
> >>
> >> Paolo
> > 
> > Hmm I don't see it.
> > In fact the goal was to document the Windows driver behaviour
> > as correct.
> > Can you explain the incompatibility please?
> 
> Whenever "If the X feature is (not) negotiated" is used in the spec, it
> means "in general you should be ready to implement both behaviors", or
> perhaps the guest should fail to initialize if the feature is not available.

"you" meaning host. Yes.
But here guest can tell host first *always if it wants to - it will
just be a bit slower when reusing pages from balloon.
If it acked the feature, it *must* tell host first.

> 
> Here it is the other way round.  The existing guest is not checking the
> outcome of the negotiation, so the host must check whether negotiation
> happened and possibly fail the initialization of the device.  It is
> sufficiently different from any other case that I don't think a one-word
> change is enough.
> 
> The way I read it yesterday I didn't see any change from the current
> specification, so the problem of having a "negative feature" remains.

This is standard behaviour:

- guest can ignore any feature that it does not ack
- host must implement both behaviours for guests that
  do and for guests that do not ack features

This is exactly what I'm proposing for TELL_HOST.

> Now rereading it, it may be correct, but it is not clear enough.
> 
> Perhaps my patch is even too verbose, but it doesn't leave anything open
> for interpretation.
> 
> Paolo

I'm fine with adding more clarifications but I don't yet see why
do we need a new bit.

-- 
MST

  reply	other threads:[~2013-05-28 10:44 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-08 10:10 [PATCH] virtio-balloon spec: rework VIRTIO_BALLOON_F_MUST_TELL_HOST feature, support silent deflation Paolo Bonzini
2013-05-27 15:55 ` Paolo Bonzini
2013-05-27 16:04   ` Michael S. Tsirkin
2013-05-27 16:09     ` Paolo Bonzini
2013-05-27 17:02       ` Michael S. Tsirkin
2013-05-28  8:38         ` Paolo Bonzini
2013-05-28 10:45           ` Michael S. Tsirkin [this message]
2013-05-28 11:13             ` Paolo Bonzini
2013-05-28 11:44               ` Michael S. Tsirkin
2013-05-28 12:04                 ` Paolo Bonzini
2013-05-28 13:32                   ` Michael S. Tsirkin
2013-05-28 14:06                     ` Paolo Bonzini
2013-05-28 14:29                       ` Michael S. Tsirkin
2013-05-28 14:32                         ` Paolo Bonzini
2013-05-28 15:09                           ` Michael S. Tsirkin
2013-05-28 16:23                             ` Paolo Bonzini
2013-05-28 16:50                               ` Michael S. Tsirkin
2013-05-28 16:57                                 ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130528104503.GD5467@redhat.com \
    --to=mst@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=virtualization@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox