On 14-Nov-19 9:50 AM, Venumadhav Josyula wrote:
Hi Anatoly,

Thanks for quick response. We want to understand, if there will be performance implications because of iova-mode being va. We want to understand,  specifically in terms following

  * cache misses
  * Branch misses etc
* translation of va addr -> phy addr when packet is receieved

There will be no impact whatsoever. You mentioned that you were already using VFIO, so you were already making use of IOMMU*. Cache/branch misses are independent of IOVA layout, and translations are done by the hardware (in either IOVA as PA or IOVA as VA case - IOMMU doesn't care what you program it with, it still does the translation, even if it's a 1:1 IOVA-to-PA mapping), so there is nothing that can cause degradation.

In fact, under some circumstances, using IOVA as VA mode can be used to get performance /gains/, because the code can take advantage of the fact that there are large IOVA-contiguous segments and no page-by-page allocations. Some drivers (IIRC octeontx mempool?) even refuse to work in IOVA as PA mode due to huge overheads of page-by-page buffer offset tracking.

TL;DR you'll be fine :)

* Using an IOMMU can /theoretically/ affect performance due to hardware IOVA->PA translation and IOTLB cache misses. In practice, i have never been able to observe /any/ effect whatsoever on performance when using IOMMU vs. without using IOMMU, so this appears to not be a concern /in practice/.

  Thanks and regards
Venu

On Thu, 14 Nov 2019 at 15:14, Burakov, Anatoly <anatoly.bura...@intel.com <mailto:anatoly.bura...@intel.com>> wrote:

    On 13-Nov-19 9:01 PM, Venumadhav Josyula wrote:
     > Hi Anatoly,
     >
     > By default w/o specifying --iova-mode option is iova-mode=pa by
    default ?
     >
     > Thanks
     > Venu
     >

    In 18.11, there is a very specific set of circumstances that will
    default to IOVA as VA mode. Future releases have become more
    aggressive,
    to the point of IOVA as VA mode being the default unless asked
    otherwise. So yes, it is highly likely that in your case, IOVA as PA is
    picked as the default.

-- Thanks,
    Anatoly



--
Thanks,
Anatoly

Reply via email to