From: "Michael S. Tsirkin" <mst@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: qemu-devel@nongnu.org, Jason Wang <jasowang@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Stefano Garzarella <sgarzare@redhat.com>,
Germano Veit Michel <germano@redhat.com>,
Raphael Norwitz <raphael.norwitz@nutanix.com>
Subject: Re: [PATCH v1 00/15] libvhost-user: support more memslots and cleanup memslot handling code
Date: Tue, 13 Feb 2024 12:33:16 -0500 [thread overview]
Message-ID: <20240213123259-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20240202215332.118728-1-david@redhat.com>
On Fri, Feb 02, 2024 at 10:53:17PM +0100, David Hildenbrand wrote:
> This series adds support for more memslots (509) to libvhost-user, to
> make it fully compatible with virtio-mem that uses up to 256 memslots
> accross all memory devices in "dynamic-memslot" mode (more details
> in patch #3).
Breaks build on some systems. E.g.
https://gitlab.com/mstredhat/qemu/-/jobs/6163591599
> One simple fix upfront.
>
> With that in place, this series optimizes and extens memory region
> handling in libvhost-user:
> * Heavily deduplicate and clean up the memory region handling code
> * Speeds up GPA->VA translation with many memslots using binary search
> * Optimize mmap_offset handling to use it as fd_offset for mmap()
> * Avoid ring remapping when adding a single memory region
> * Avoid dumping all guest memory, possibly allocating memory in sparse
> memory mappings when the process crashes
>
> I'm being very careful to not break some weird corner case that modern
> QEMU might no longer trigger, but older one could have triggered or some
> other frontend might trigger.
>
> The only thing where I am not careful is to forbid memory regions that
> overlap in GPA space: it doesn't make any sense.
>
> With this series, virtio-mem (with dynamic-memslots=on) +
> qemu-storage-daemon works flawlessly and as expected in my tests.
>
> Cc: Michael S. Tsirkin <mst@redhat.com>
> Cc: Jason Wang <jasowang@redhat.com>
> Cc: Stefan Hajnoczi <stefanha@redhat.com>
> Cc: Stefano Garzarella <sgarzare@redhat.com>
> Cc: Germano Veit Michel <germano@redhat.com>
> Cc: Raphael Norwitz <raphael.norwitz@nutanix.com>
>
> David Hildenbrand (15):
> libvhost-user: Fix msg_region->userspace_addr computation
> libvhost-user: Dynamically allocate memory for memory slots
> libvhost-user: Bump up VHOST_USER_MAX_RAM_SLOTS to 509
> libvhost-user: Factor out removing all mem regions
> libvhost-user: Merge vu_set_mem_table_exec_postcopy() into
> vu_set_mem_table_exec()
> libvhost-user: Factor out adding a memory region
> libvhost-user: No need to check for NULL when unmapping
> libvhost-user: Don't zero out memory for memory regions
> libvhost-user: Don't search for duplicates when removing memory
> regions
> libvhost-user: Factor out search for memory region by GPA and simplify
> libvhost-user: Speedup gpa_to_mem_region() and vu_gpa_to_va()
> libvhost-user: Use most of mmap_offset as fd_offset
> libvhost-user: Factor out vq usability check
> libvhost-user: Dynamically remap rings after (temporarily?) removing
> memory regions
> libvhost-user: Mark mmap'ed region memory as MADV_DONTDUMP
>
> subprojects/libvhost-user/libvhost-user.c | 593 ++++++++++++----------
> subprojects/libvhost-user/libvhost-user.h | 10 +-
> 2 files changed, 332 insertions(+), 271 deletions(-)
>
> --
> 2.43.0
next prev parent reply other threads:[~2024-02-13 17:34 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-02 21:53 [PATCH v1 00/15] libvhost-user: support more memslots and cleanup memslot handling code David Hildenbrand
2024-02-02 21:53 ` [PATCH v1 01/15] libvhost-user: Fix msg_region->userspace_addr computation David Hildenbrand
2024-02-04 1:35 ` Raphael Norwitz
2024-02-04 14:36 ` David Hildenbrand
2024-02-04 22:01 ` Raphael Norwitz
2024-02-05 7:32 ` David Hildenbrand
2024-02-13 17:32 ` Michael S. Tsirkin
2024-02-13 18:25 ` David Hildenbrand
2024-02-02 21:53 ` [PATCH v1 02/15] libvhost-user: Dynamically allocate memory for memory slots David Hildenbrand
2024-02-04 1:36 ` Raphael Norwitz
2024-02-02 21:53 ` [PATCH v1 03/15] libvhost-user: Bump up VHOST_USER_MAX_RAM_SLOTS to 509 David Hildenbrand
2024-02-04 1:42 ` Raphael Norwitz
2024-02-02 21:53 ` [PATCH v1 04/15] libvhost-user: Factor out removing all mem regions David Hildenbrand
2024-02-04 1:43 ` Raphael Norwitz
2024-02-02 21:53 ` [PATCH v1 05/15] libvhost-user: Merge vu_set_mem_table_exec_postcopy() into vu_set_mem_table_exec() David Hildenbrand
2024-02-04 1:44 ` Raphael Norwitz
2024-02-02 21:53 ` [PATCH v1 06/15] libvhost-user: Factor out adding a memory region David Hildenbrand
2024-02-04 1:44 ` Raphael Norwitz
2024-02-02 21:53 ` [PATCH v1 07/15] libvhost-user: No need to check for NULL when unmapping David Hildenbrand
2024-02-04 1:45 ` Raphael Norwitz
2024-02-02 21:53 ` [PATCH v1 08/15] libvhost-user: Don't zero out memory for memory regions David Hildenbrand
2024-02-04 1:46 ` Raphael Norwitz
2024-02-02 21:53 ` [PATCH v1 09/15] libvhost-user: Don't search for duplicates when removing " David Hildenbrand
2024-02-04 1:47 ` Raphael Norwitz
2024-02-02 21:53 ` [PATCH v1 10/15] libvhost-user: Factor out search for memory region by GPA and simplify David Hildenbrand
2024-02-04 1:47 ` Raphael Norwitz
2024-02-02 21:53 ` [PATCH v1 11/15] libvhost-user: Speedup gpa_to_mem_region() and vu_gpa_to_va() David Hildenbrand
2024-02-04 2:10 ` Raphael Norwitz
2024-02-04 14:51 ` David Hildenbrand
2024-02-04 22:07 ` Raphael Norwitz
2024-02-05 7:32 ` David Hildenbrand
2024-02-02 21:53 ` [PATCH v1 12/15] libvhost-user: Use most of mmap_offset as fd_offset David Hildenbrand
2024-02-04 2:11 ` Raphael Norwitz
2024-02-02 21:53 ` [PATCH v1 13/15] libvhost-user: Factor out vq usability check David Hildenbrand
2024-02-04 2:11 ` Raphael Norwitz
2024-02-02 21:53 ` [PATCH v1 14/15] libvhost-user: Dynamically remap rings after (temporarily?) removing memory regions David Hildenbrand
2024-02-04 2:15 ` Raphael Norwitz
2024-02-04 14:58 ` David Hildenbrand
2024-02-02 21:53 ` [PATCH v1 15/15] libvhost-user: Mark mmap'ed region memory as MADV_DONTDUMP David Hildenbrand
2024-02-04 2:16 ` Raphael Norwitz
2024-02-07 11:40 ` [PATCH v1 00/15] libvhost-user: support more memslots and cleanup memslot handling code Stefano Garzarella
2024-02-09 22:36 ` David Hildenbrand
2024-02-13 17:33 ` Michael S. Tsirkin [this message]
2024-02-13 18:27 ` David Hildenbrand
2024-02-13 18:55 ` Michael S. Tsirkin
2024-02-14 11:06 ` David Hildenbrand
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=20240213123259-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=david@redhat.com \
--cc=germano@redhat.com \
--cc=jasowang@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=raphael.norwitz@nutanix.com \
--cc=sgarzare@redhat.com \
--cc=stefanha@redhat.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.