On Fri, 8 Dec 2017 20:32:49 +0000
"Dr. David Alan Gilbert (git)" <dgilbert@redhat.com> wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
>
> Hi,
> This is an experimental set that reworks the way the vhost
> code handles changes in physical address space layout that
> came from a discussion with Igor.
>
> It's intention is to simplify a lot of the update code,
> and to make it easier for the postcopy+shared code to
> do the hugepage alignments that are needed.
>
> Instead of updating and trying to merge sections of address
> space on each add/remove callback, we wait until the commit phase
> and go through and rebuild a list by walking the Flatview of
> memory and end up producing an ordered list.
> We compare the list to the old list to trigger updates.
>
> This is pretty lightly tested (not least because I can't
> get vhost-user+hot-add memory to survive even upstream).
vhost kernel + hot-add should works (well that's at ales what I'm
usually testing).
vhost-user was lately failing 'make check' on me even without
memhotplug, so I've disabled it in my builds for now.
> v2
> Incorporate changes and code from Igor, in particular the simpler
> ring verification checks and thus the removal of the complex
> comparison code.
>
> Dave
>
>
> Dr. David Alan Gilbert (8):
> memory: address_space_iterate
> vhost: Move log_dirty check
> vhost: Simplify ring verification checks
> vhost: New memory update functions
> vhost: update_mem_cb implementation
> vhost: Compare and copy updated region data into device state
> vhost: Remove old vhost_set_memory etc
> vhost: Move mem_sections maintenance into commit/update routines
>
> hw/virtio/trace-events | 7 +
> hw/virtio/vhost.c | 504 ++++++++++++++++------------------------------
> include/exec/memory.h | 23 +++
> include/hw/virtio/vhost.h | 3 -
> memory.c | 22 ++
> 5 files changed, 229 insertions(+), 330 deletions(-)
>