On 2019/9/18 下午4:37, Tian, Kevin wrote:
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)?
I don't know, just want to say current API does not forbid this. So we
probably need to take care it.
Is Qemu doing its own same-content memory
merging in GPA level, similar to KSM?
AFAIK, it doesn't.
Thanks
Thanks
Kevin