Hi Bharat, On 06/10/2017 05:46, Bharat Bhushan wrote: > > >>>> Thanks >>>> >>>> Eric >>>>> >>>>> However you should be allowed to map 1 sg element of 5 pages and >>>>> then notify the host about this event I think. Still looking at the >>>>> code... >>>>> >>>>> I still can't reproduce the issue at the moment. What kind of device >>>>> are you assigning? >>>>> >>>>> Thanks >>>>> >>>>> Eric >>>>>> >>>>>> Atleast vfio_get_vaddr called from vfio_iommu_map_notify in Qemu >>>>>> expects the map size to be a power of 2. >>> >>> Actually I missed the most important here ;-) >>>>>> >>>>>> if (len & iotlb->addr_mask) { >>> This check looks suspiscious to me. In our case the len is not >>> modified by the previous translation and it fails, I don't see why. It >>> should be valid to be able to notify 5 granules. >> >> So after discussion with Alex, looks the way we notify the host currently is >> wrong. we set the addr_mask to the mapping/unmapping size >> -1 whereas this should be a page mask instead (granule size or block size?). >> So if the guest maps 5 x 4kB pages we should send 5 notifications for each >> page and not a single one. It is unclear to me if we can notify with >> hugepage/block page size mask. Peter may confirm/infirm this. in vsmmuv3 >> code I notify by granule or block size. >> >> Bharat, please can you add this to your TODO list? >> >> Linu, thanks a lot for the time you spent debugging this issue. >> Curiously on my side, it is really seldom hit but it is ... > > Thanks Linu and Eric, I added this to my todo list. > While I am still not able to reproduce the issue. I tried with e1000 and now > try with ixgbe device. May I know which device can be used to reproduce this > issue?
On my side I used an i350T2 device (igb) to reproduce the issue. Thanks Eric > > Thanks > -Bharat > >> >> Thanks! >> >> Eric >>> >>> Thanks >>> >>> Eric >>>>>> error_report("iommu has granularity incompatible with target >>>>>> AS"); >>>>>> return false; >>>>>> } >>>>>> >>>>>> Just trying to understand how this is not hitting in your case. >>>>>> >>>>>> >>>>> >>>> >>> >