[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC 0/7] Rework vhost memory region updates
From: |
Igor Mammedov |
Subject: |
Re: [Qemu-devel] [RFC 0/7] Rework vhost memory region updates |
Date: |
Thu, 30 Nov 2017 12:22:45 +0100 |
On Wed, 29 Nov 2017 18:50:19 +0000
"Dr. David Alan Gilbert (git)" <address@hidden> wrote:
> From: "Dr. David Alan Gilbert" <address@hidden>
>
> 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.
Thanks for looking into it.
> 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.
>
> Note, only very lightly tested so far, I'm just trying to see if it's
> the right shape.
>
> Igor, is this what you were intending?
I was thinking about a little less intrusive approach
where vhost_region_add/del are modified to maintain
sorted by GPA array of mem_sections, vhost_dev::mem is dropped
altogether and vhost_memory_region array is build/used/freed
on every vhost_commit().
Maintaining sorted array should roughly cost us O(2 log n) if
binary search is used.
However I like your idea with iterator even more as it have
potential to make it even faster O(n) if we get rid of
quadratic and relatively complex vhost_update_compare_list().
Pls, see comments on individual patches.
> Dave
>
> Dr. David Alan Gilbert (7):
> memory: address_space_iterate
> vhost: Move log_dirty check
> vhost: New memory update functions
> vhost: update_mem_cb implementation
> vhost: Compare new and old memory lists
> vhost: Copy updated region data into device state
> vhost: Remove vhost_set_memory and children
>
> hw/virtio/trace-events | 8 +
> hw/virtio/vhost.c | 424
> ++++++++++++++++++++++---------------------------
> include/exec/memory.h | 23 +++
> memory.c | 22 +++
> 4 files changed, 241 insertions(+), 236 deletions(-)
>
- [Qemu-devel] [RFC 0/7] Rework vhost memory region updates, Dr. David Alan Gilbert (git), 2017/11/29
- [Qemu-devel] [RFC 1/7] memory: address_space_iterate, Dr. David Alan Gilbert (git), 2017/11/29
- [Qemu-devel] [RFC 2/7] vhost: Move log_dirty check, Dr. David Alan Gilbert (git), 2017/11/29
- [Qemu-devel] [RFC 3/7] vhost: New memory update functions, Dr. David Alan Gilbert (git), 2017/11/29
- [Qemu-devel] [RFC 5/7] vhost: Compare new and old memory lists, Dr. David Alan Gilbert (git), 2017/11/29
- [Qemu-devel] [RFC 4/7] vhost: update_mem_cb implementation, Dr. David Alan Gilbert (git), 2017/11/29
- [Qemu-devel] [RFC 7/7] vhost: Remove vhost_set_memory and children, Dr. David Alan Gilbert (git), 2017/11/29
- [Qemu-devel] [RFC 6/7] vhost: Copy updated region data into device state, Dr. David Alan Gilbert (git), 2017/11/29
- Re: [Qemu-devel] [RFC 0/7] Rework vhost memory region updates,
Igor Mammedov <=
- Re: [Qemu-devel] [RFC 0/7] Rework vhost memory region updates, Dr. David Alan Gilbert, 2017/11/30
- Re: [Qemu-devel] [RFC 0/7] Rework vhost memory region updates, Igor Mammedov, 2017/11/30
- Re: [Qemu-devel] [RFC 0/7] Rework vhost memory region updates, Dr. David Alan Gilbert, 2017/11/30
- Re: [Qemu-devel] [RFC 0/7] Rework vhost memory region updates, Igor Mammedov, 2017/11/30
- Re: [Qemu-devel] [RFC 0/7] Rework vhost memory region updates, Dr. David Alan Gilbert, 2017/11/30
- Re: [Qemu-devel] [RFC 0/7] Rework vhost memory region updates, Igor Mammedov, 2017/11/30
- Re: [Qemu-devel] [RFC 0/7] Rework vhost memory region updates, Dr. David Alan Gilbert, 2017/11/30
- Re: [Qemu-devel] [RFC 0/7] Rework vhost memory region updates, Igor Mammedov, 2017/11/30
- Re: [Qemu-devel] [RFC 0/7] Rework vhost memory region updates, Dr. David Alan Gilbert, 2017/11/30
- Re: [Qemu-devel] [RFC 0/7] Rework vhost memory region updates, Greg Kurz, 2017/11/30