[Qemu-devel] [PATCH v5 00/29] postcopy+vhost-user/shared ram

Dr. David Alan Gilbert (git) posted 29 patches 6 years, 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20180312172124.56461-1-dgilbert@redhat.com
Test checkpatch passed
Test docker-build@min-glib passed
Test docker-mingw@fedora passed
Test docker-quick@centos6 passed
Test s390x passed
There is a newer version of this series
contrib/libvhost-user/libvhost-user.c | 302 ++++++++++++++++++++++++-
contrib/libvhost-user/libvhost-user.h |  11 +
docs/devel/migration.rst              |  41 ++++
docs/interop/vhost-user.txt           |  52 +++++
exec.c                                |  86 +++++--
hw/virtio/trace-events                |  16 +-
hw/virtio/vhost-user.c                | 411 +++++++++++++++++++++++++++++++++-
hw/virtio/vhost.c                     |  66 +++++-
include/exec/cpu-common.h             |   4 +
migration/migration.c                 |   6 +
migration/migration.h                 |   4 +
migration/postcopy-ram.c              | 354 +++++++++++++++++++++++------
migration/postcopy-ram.h              |  73 ++++++
migration/ram.c                       |   5 +
migration/ram.h                       |   1 +
migration/savevm.c                    |  13 ++
migration/trace-events                |   6 +
trace-events                          |   3 +-
vl.c                                  |   2 +
19 files changed, 1358 insertions(+), 98 deletions(-)
[Qemu-devel] [PATCH v5 00/29] postcopy+vhost-user/shared ram
Posted by Dr. David Alan Gilbert (git) 6 years, 1 month ago
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>

  This set enables postcopy migration with shared memory to a vhost user process.
It's based off current head.
 
  Testing is mostly performed with dpdk, with corresponding modifications by
Maxime.
 
  v5 is mostly just fixes from comments received during review of v4.
The only notable one is that the 'advise' message no longer has any
data.
 
Dave

Dr. David Alan Gilbert (29):
  migrate: Update ram_block_discard_range for shared
  qemu_ram_block_host_offset
  postcopy: use UFFDIO_ZEROPAGE only when available
  postcopy: Add notifier chain
  postcopy: Add vhost-user flag for postcopy and check it
  vhost-user: Add 'VHOST_USER_POSTCOPY_ADVISE' message
  libvhost-user: Support sending fds back to qemu
  libvhost-user: Open userfaultfd
  postcopy: Allow registering of fd handler
  vhost+postcopy: Register shared ufd with postcopy
  vhost+postcopy: Transmit 'listen' to slave
  postcopy+vhost-user: Split set_mem_table for postcopy
  migration/ram: ramblock_recv_bitmap_test_byte_offset
  libvhost-user+postcopy: Register new regions with the ufd
  vhost+postcopy: Send address back to qemu
  vhost+postcopy: Stash RAMBlock and offset
  vhost+postcopy: Helper to send requests to source for shared pages
  vhost+postcopy: Resolve client address
  postcopy: helper for waking shared
  postcopy: postcopy_notify_shared_wake
  vhost+postcopy: Add vhost waker
  vhost+postcopy: Call wakeups
  libvhost-user: mprotect & madvises for postcopy
  vhost-user: Add VHOST_USER_POSTCOPY_END message
  vhost+postcopy: Wire up POSTCOPY_END notify
  vhost: Huge page align and merge
  postcopy: Allow shared memory
  libvhost-user: Claim support for postcopy
  postcopy shared docs

 contrib/libvhost-user/libvhost-user.c | 302 ++++++++++++++++++++++++-
 contrib/libvhost-user/libvhost-user.h |  11 +
 docs/devel/migration.rst              |  41 ++++
 docs/interop/vhost-user.txt           |  52 +++++
 exec.c                                |  86 +++++--
 hw/virtio/trace-events                |  16 +-
 hw/virtio/vhost-user.c                | 411 +++++++++++++++++++++++++++++++++-
 hw/virtio/vhost.c                     |  66 +++++-
 include/exec/cpu-common.h             |   4 +
 migration/migration.c                 |   6 +
 migration/migration.h                 |   4 +
 migration/postcopy-ram.c              | 354 +++++++++++++++++++++++------
 migration/postcopy-ram.h              |  73 ++++++
 migration/ram.c                       |   5 +
 migration/ram.h                       |   1 +
 migration/savevm.c                    |  13 ++
 migration/trace-events                |   6 +
 trace-events                          |   3 +-
 vl.c                                  |   2 +
 19 files changed, 1358 insertions(+), 98 deletions(-)

-- 
2.14.3


Re: [Qemu-devel] [PATCH v5 00/29] postcopy+vhost-user/shared ram
Posted by Michael S. Tsirkin 6 years, 1 month ago
On Mon, Mar 12, 2018 at 05:20:55PM +0000, Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> 
>   This set enables postcopy migration with shared memory to a vhost user process.
> It's based off current head.
>  
>   Testing is mostly performed with dpdk, with corresponding modifications by
> Maxime.
>  
>   v5 is mostly just fixes from comments received during review of v4.
> The only notable one is that the 'advise' message no longer has any
> data.

I plan to apply this. Could you pls rebase on top of
pci branch in my tree? Or wait till it's merged and rebase.
And pls fix the minor whitespace issue git warns about.

> Dave
> 
> Dr. David Alan Gilbert (29):
>   migrate: Update ram_block_discard_range for shared
>   qemu_ram_block_host_offset
>   postcopy: use UFFDIO_ZEROPAGE only when available
>   postcopy: Add notifier chain
>   postcopy: Add vhost-user flag for postcopy and check it
>   vhost-user: Add 'VHOST_USER_POSTCOPY_ADVISE' message
>   libvhost-user: Support sending fds back to qemu
>   libvhost-user: Open userfaultfd
>   postcopy: Allow registering of fd handler
>   vhost+postcopy: Register shared ufd with postcopy
>   vhost+postcopy: Transmit 'listen' to slave
>   postcopy+vhost-user: Split set_mem_table for postcopy
>   migration/ram: ramblock_recv_bitmap_test_byte_offset
>   libvhost-user+postcopy: Register new regions with the ufd
>   vhost+postcopy: Send address back to qemu
>   vhost+postcopy: Stash RAMBlock and offset
>   vhost+postcopy: Helper to send requests to source for shared pages
>   vhost+postcopy: Resolve client address
>   postcopy: helper for waking shared
>   postcopy: postcopy_notify_shared_wake
>   vhost+postcopy: Add vhost waker
>   vhost+postcopy: Call wakeups
>   libvhost-user: mprotect & madvises for postcopy
>   vhost-user: Add VHOST_USER_POSTCOPY_END message
>   vhost+postcopy: Wire up POSTCOPY_END notify
>   vhost: Huge page align and merge
>   postcopy: Allow shared memory
>   libvhost-user: Claim support for postcopy
>   postcopy shared docs
> 
>  contrib/libvhost-user/libvhost-user.c | 302 ++++++++++++++++++++++++-
>  contrib/libvhost-user/libvhost-user.h |  11 +
>  docs/devel/migration.rst              |  41 ++++
>  docs/interop/vhost-user.txt           |  52 +++++
>  exec.c                                |  86 +++++--
>  hw/virtio/trace-events                |  16 +-
>  hw/virtio/vhost-user.c                | 411 +++++++++++++++++++++++++++++++++-
>  hw/virtio/vhost.c                     |  66 +++++-
>  include/exec/cpu-common.h             |   4 +
>  migration/migration.c                 |   6 +
>  migration/migration.h                 |   4 +
>  migration/postcopy-ram.c              | 354 +++++++++++++++++++++++------
>  migration/postcopy-ram.h              |  73 ++++++
>  migration/ram.c                       |   5 +
>  migration/ram.h                       |   1 +
>  migration/savevm.c                    |  13 ++
>  migration/trace-events                |   6 +
>  trace-events                          |   3 +-
>  vl.c                                  |   2 +
>  19 files changed, 1358 insertions(+), 98 deletions(-)
> 
> -- 
> 2.14.3

Re: [Qemu-devel] [PATCH v5 00/29] postcopy+vhost-user/shared ram
Posted by Dr. David Alan Gilbert 6 years, 1 month ago
* Michael S. Tsirkin (mst@redhat.com) wrote:
> On Mon, Mar 12, 2018 at 05:20:55PM +0000, Dr. David Alan Gilbert (git) wrote:
> > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> > 
> >   This set enables postcopy migration with shared memory to a vhost user process.
> > It's based off current head.
> >  
> >   Testing is mostly performed with dpdk, with corresponding modifications by
> > Maxime.
> >  
> >   v5 is mostly just fixes from comments received during review of v4.
> > The only notable one is that the 'advise' message no longer has any
> > data.
> 
> I plan to apply this. Could you pls rebase on top of
> pci branch in my tree? Or wait till it's merged and rebase.
> And pls fix the minor whitespace issue git warns about.

Yes, I'll post this as a v6 in a minute; the merge took a little
bit of cleanup on one patch.

Dave

> > Dave
> > 
> > Dr. David Alan Gilbert (29):
> >   migrate: Update ram_block_discard_range for shared
> >   qemu_ram_block_host_offset
> >   postcopy: use UFFDIO_ZEROPAGE only when available
> >   postcopy: Add notifier chain
> >   postcopy: Add vhost-user flag for postcopy and check it
> >   vhost-user: Add 'VHOST_USER_POSTCOPY_ADVISE' message
> >   libvhost-user: Support sending fds back to qemu
> >   libvhost-user: Open userfaultfd
> >   postcopy: Allow registering of fd handler
> >   vhost+postcopy: Register shared ufd with postcopy
> >   vhost+postcopy: Transmit 'listen' to slave
> >   postcopy+vhost-user: Split set_mem_table for postcopy
> >   migration/ram: ramblock_recv_bitmap_test_byte_offset
> >   libvhost-user+postcopy: Register new regions with the ufd
> >   vhost+postcopy: Send address back to qemu
> >   vhost+postcopy: Stash RAMBlock and offset
> >   vhost+postcopy: Helper to send requests to source for shared pages
> >   vhost+postcopy: Resolve client address
> >   postcopy: helper for waking shared
> >   postcopy: postcopy_notify_shared_wake
> >   vhost+postcopy: Add vhost waker
> >   vhost+postcopy: Call wakeups
> >   libvhost-user: mprotect & madvises for postcopy
> >   vhost-user: Add VHOST_USER_POSTCOPY_END message
> >   vhost+postcopy: Wire up POSTCOPY_END notify
> >   vhost: Huge page align and merge
> >   postcopy: Allow shared memory
> >   libvhost-user: Claim support for postcopy
> >   postcopy shared docs
> > 
> >  contrib/libvhost-user/libvhost-user.c | 302 ++++++++++++++++++++++++-
> >  contrib/libvhost-user/libvhost-user.h |  11 +
> >  docs/devel/migration.rst              |  41 ++++
> >  docs/interop/vhost-user.txt           |  52 +++++
> >  exec.c                                |  86 +++++--
> >  hw/virtio/trace-events                |  16 +-
> >  hw/virtio/vhost-user.c                | 411 +++++++++++++++++++++++++++++++++-
> >  hw/virtio/vhost.c                     |  66 +++++-
> >  include/exec/cpu-common.h             |   4 +
> >  migration/migration.c                 |   6 +
> >  migration/migration.h                 |   4 +
> >  migration/postcopy-ram.c              | 354 +++++++++++++++++++++++------
> >  migration/postcopy-ram.h              |  73 ++++++
> >  migration/ram.c                       |   5 +
> >  migration/ram.h                       |   1 +
> >  migration/savevm.c                    |  13 ++
> >  migration/trace-events                |   6 +
> >  trace-events                          |   3 +-
> >  vl.c                                  |   2 +
> >  19 files changed, 1358 insertions(+), 98 deletions(-)
> > 
> > -- 
> > 2.14.3
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK