On Wed, Apr 10, 2024 at 6:03 PM Eugenio Pérez <epere...@redhat.com> wrote: > > The guest may have overlapped memory regions, where different GPA leads > to the same HVA. This causes a problem when overlapped regions > (different GPA but same translated HVA) exists in the tree, as looking > them by HVA will return them twice.
I think I don't understand if there's any side effect for shadow virtqueue? Thanks > > To solve this, track GPA in the DMA entry that acs as unique identifiers > to the maps. When the map needs to be removed, iova tree is able to > find the right one. > > Users that does not go to this extra layer of indirection can use the > iova tree as usual, with id = 0. > > This was found by Si-Wei Liu <si-wei....@oracle.com>, but I'm having a hard > time to reproduce the issue. This has been tested only without overlapping > maps. If it works with overlapping maps, it will be intergrated in the main > series. > > Comments are welcome. Thanks! > > Eugenio Pérez (2): > iova_tree: add an id member to DMAMap > vdpa: identify aliased maps in iova_tree > > hw/virtio/vhost-vdpa.c | 2 ++ > include/qemu/iova-tree.h | 5 +++-- > util/iova-tree.c | 3 ++- > 3 files changed, 7 insertions(+), 3 deletions(-) > > -- > 2.44.0 >