On Wed, Sep 09, 2026 at 03:59:21PM +0300, Alex Fishman wrote: > Virtio-mem dynamic memslots are intentionally exposed as separate memory > regions. If a guest places a vring part across two adjacent slots, a later > memory update fails vhost ring verification because the complete ring part > is not contained in one vhost memory region.
when does this happen? > Coalesce coherent adjacent sections only when a descriptor table, > available ring, or used ring crosses their boundary. Unrelated > unmergeable sections remain separate so they can still be updated > independently. > > Patch 2 adds an end-to-end qtest reproducer using a fake vhost-user > backend and virtio-mem dynamic memslots. It also verifies that a newly > activated slot is not folded into the merge required by the crossing > vring. > > Tested with the vhost-user/mem-slots/boundary qtest. > > Buglink: https://redhat.atlassian.net/browse/RHEL-146583 > > Alex Fishman (2): > vhost: coalesce unmergeable sections across vring boundaries > tests/qtest: Add vhost-user memslot boundary test > > hw/virtio/vhost.c | 72 ++++++- > tests/qtest/vhost-user-test.c | 395 +++++++++++++++++++++++++++++++++- > 2 files changed, 452 insertions(+), 15 deletions(-) > > > base-commit: ff1d2d19d7e24893e2012d879f8e73077e17b9bd > -- > 2.52.0
