> From: Jason Wang [mailto:jasow...@redhat.com] > Sent: Wednesday, September 18, 2019 2:10 PM > > >> > >> Note that the HVA to GPA mapping is not an 1:1 mapping. One HVA > range > >> could be mapped to several GPA ranges. > > This is fine. Currently vfio_dma maintains IOVA->HVA mapping. > > > > btw under what condition HVA->GPA is not 1:1 mapping? I didn't realize it. > > > I don't remember the details e.g memory region alias? And neither kvm > nor kvm API does forbid this if my memory is correct. >
I checked https://qemu.weilnetz.de/doc/devel/memory.html, which provides an example of aliased layout. However, its aliasing is all 1:1, instead of N:1. From guest p.o.v every writable GPA implies an unique location. Why would we hit the situation where multiple write-able GPAs are mapped to the same HVA (i.e. same physical memory location)? Is Qemu doing its own same-content memory merging in GPA level, similar to KSM? Thanks Kevin