All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Marc-André Lureau" <mlureau@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: "haifeng lin" <haifeng.lin@huawei.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	pbonzini@redhat.com, qemu-devel@nongnu.org,
	"thibaut collet" <thibaut.collet@6wind.com>
Subject: Re: [Qemu-devel] [PATCH RFC 6/6] vhost-user: document migration log
Date: Thu, 23 Jul 2015 11:36:37 -0400 (EDT)	[thread overview]
Message-ID: <1860078353.3420583.1437665797290.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <20150723182723-mutt-send-email-mst@redhat.com>

Hi

----- Original Message -----
> On Thu, Jul 23, 2015 at 03:36:43AM +0200, Marc-André Lureau wrote:
> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> for some reason I didn't get 5/6.
> 

strange: http://lists.nongnu.org/archive/html/qemu-devel/2015-07/msg04640.html

> > ---
> >  docs/specs/vhost-user.txt | 40 ++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 40 insertions(+)
> > 
> > diff --git a/docs/specs/vhost-user.txt b/docs/specs/vhost-user.txt
> > index 0062baa..c2d2e2a 100644
> > --- a/docs/specs/vhost-user.txt
> > +++ b/docs/specs/vhost-user.txt
> > @@ -120,6 +120,7 @@ There are several messages that the master sends with
> > file descriptors passed
> >  in the ancillary data:
> >  
> >   * VHOST_SET_MEM_TABLE
> > + * VHOST_SET_LOG_BASE (if VHOST_USER_PROTOCOL_F_LOG_SHMFD)
> >   * VHOST_SET_LOG_FD
> >   * VHOST_SET_VRING_KICK
> >   * VHOST_SET_VRING_CALL
> > @@ -135,6 +136,11 @@ As older slaves don't support negotiating protocol
> > features,
> >  a feature bit was dedicated for this purpose:
> >  #define VHOST_USER_F_PROTOCOL_FEATURES 30
> >  
> > +Protocol features
> > +-----------------
> > +
> > +#define VHOST_USER_PROTOCOL_F_LOG_SHMFD 0
> > +
> >  Message types
> >  -------------
> >  
> > @@ -301,3 +307,37 @@ Message types
> >        Bits (0-7) of the payload contain the vring index. Bit 8 is the
> >        invalid FD flag. This flag is set when there is no file descriptor
> >        in the ancillary data.
> > +
> > +Migration
> > +---------
> > +
> > +During live migration, the master may need to track the modifications
> > +the slave makes to the memory mapped regions. The client should mark
> > +the dirty pages in a log. Once it complies to this logging, it may
> > +declare VHOST_F_LOG_ALL has a vhost feature.
> > +
> > +All the modifications to memory pointed by vring "descriptor" should
> > +be marked. Modifications to "used" vring should be marked if
> > +VHOST_VRING_F_LOG is part of ring's features.
> 
> It's device's features I think.

Hmm, it's part of both, not sure why: see vhost_virtqueue_set_addr() and vhost_dev_set_features()

Not sure it's correct in device features, it doesn't seem to be check in kernel vhost.c either.

There is also some dead definitions like VHOST_MEMORY_F_LOG there

> 
> > +
> > +Dirty pages are of size:
> > +#define VHOST_LOG_PAGE 0x1000
> > +
> > +The log memory fd is provided in the ancillary data of
> > +VHOST_USER_SET_LOG_BASE message when the slave has
> > +VHOST_USER_PROTOCOL_F_LOG_SHMFD protocol feature.
> > +
> > +The size of the log may be computed by using all the known guest
> > +addresses. The log covers from address 0 to the maximum of guest
> > +regions. In pseudo-code, to mark page at "addr" as dirty:
> > +
> > +page = addr / VHOST_LOG_PAGE
> > +log[page / 8] |= 1 << page % 8
> 
> Pls note it must be done atomically.

ok

> 
> 
> > +
> > +VHOST_USER_SET_LOG_FD is an optional message with an eventfd in
> > +ancillary data, it may be used to inform the master that the log has
> > +been modified.
> > +
> > +Once the source has finished migration, VHOST_USER_RESET_OWNER message
> > +will be sent by the source. No further update must be done before the
> > +destination takes over with new regions & rings.
> > --
> > 2.4.3
> 

      reply	other threads:[~2015-07-23 16:49 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-23  1:36 [Qemu-devel] [PATCH RFC 0/6] vhost-user: add migration log support Marc-André Lureau
2015-07-23  1:36 ` [Qemu-devel] [PATCH RFC 1/6] configure: probe for memfd Marc-André Lureau
2015-07-23  1:36 ` [Qemu-devel] [PATCH RFC 2/6] posix: add linux-only memfd fallback Marc-André Lureau
2015-07-23 15:25   ` Michael S. Tsirkin
2015-07-28  8:11     ` Paolo Bonzini
2015-07-28 10:58       ` Marc-André Lureau
2015-07-28 11:50         ` Paolo Bonzini
2015-07-28 14:25           ` Marc-André Lureau
2015-07-28 16:37             ` Paolo Bonzini
2015-07-23  1:36 ` [Qemu-devel] [PATCH RFC 3/6] osdep: add memfd helpers Marc-André Lureau
2015-07-23  1:36 ` [Qemu-devel] [PATCH RFC 4/6] vhost: alloc shareable log Marc-André Lureau
2015-07-28  5:28   ` Jason Wang
2015-07-28 10:10     ` Michael S. Tsirkin
2015-07-28 14:42       ` Marc-André Lureau
2015-07-23  1:36 ` [Qemu-devel] [PATCH RFC 5/6] vhost-user: send log shm fd along with log_base Marc-André Lureau
2015-07-23  1:36 ` [Qemu-devel] [PATCH RFC 6/6] vhost-user: document migration log Marc-André Lureau
2015-07-23 15:30   ` Michael S. Tsirkin
2015-07-23 15:36     ` Marc-André Lureau [this message]

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=1860078353.3420583.1437665797290.JavaMail.zimbra@redhat.com \
    --to=mlureau@redhat.com \
    --cc=haifeng.lin@huawei.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=thibaut.collet@6wind.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.