[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] vhost, iova, and dirty page tracking
From: |
Yan Zhao |
Subject: |
Re: [Qemu-devel] vhost, iova, and dirty page tracking |
Date: |
Thu, 19 Sep 2019 01:28:20 -0400 |
User-agent: |
Mutt/1.9.4 (2018-02-28) |
On Thu, Sep 19, 2019 at 09:05:12AM +0800, Jason Wang wrote:
>
> On 2019/9/18 下午4:37, Tian, Kevin wrote:
> >> From: Jason Wang [mailto:address@hidden]
> >> 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.
>
yes, in KVM API level, it does not forbid two slots to have the same
HVA(slot->userspace_addr).
But
(1) there's only one kvm instance for each vm for each qemu process.
(2) all ramblock->host (corresponds to HVA and slot->userspace_addr) in one qemu
process is non-overlapping as it's obtained from mmmap().
(3) qemu ensures two kvm slots will not point to the same section of one
ramblock.
So, as long as kvm instance is not shared in two processes, and
there's no bug in qemu, we can assure that HVA to GPA is 1:1.
But even if there are two processes operating on the same kvm instance
and manipulating on memory slots, adding an extra GPA along side current
IOVA & HVA to ioctl VFIO_IOMMU_MAP_DMA can still let driver knows the
right IOVA->GPA mapping, right?
Thanks
Yan
>
> > Is Qemu doing its own same-content memory
> > merging in GPA level, similar to KSM?
>
>
> AFAIK, it doesn't.
>
> Thanks
>
>
> > Thanks
> > Kevin
>
>
>
- [Qemu-devel] vhost, iova, and dirty page tracking, Tian, Kevin, 2019/09/15
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Jason Wang, 2019/09/16
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Tian, Kevin, 2019/09/17
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Jason Wang, 2019/09/17
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Tian, Kevin, 2019/09/17
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Jason Wang, 2019/09/18
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Tian, Kevin, 2019/09/18
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Tian, Kevin, 2019/09/18
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Jason Wang, 2019/09/18
- Re: [Qemu-devel] vhost, iova, and dirty page tracking,
Yan Zhao <=
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Jason Wang, 2019/09/19
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Yan Zhao, 2019/09/19
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Jason Wang, 2019/09/19
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Yan Zhao, 2019/09/19
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Yan Zhao, 2019/09/19
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Jason Wang, 2019/09/19
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Yan Zhao, 2019/09/19
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Jason Wang, 2019/09/19
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Jason Wang, 2019/09/19
- Re: [Qemu-devel] vhost, iova, and dirty page tracking, Yan Zhao, 2019/09/19