[dpdk-dev] [PATCH] eal: disable IOVA mode detection by default

Tan, Jianfeng jianfeng.tan at intel.com
Wed Nov 1 07:37:23 CET 2017



> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Wednesday, November 1, 2017 2:33 PM
> To: Tan, Jianfeng; Thomas Monjalon; Richardson, Bruce; Gonzalez Monroy,
> Sergio
> Cc: dev at dpdk.org; Santosh Shukla
> Subject: Re: [PATCH] eal: disable IOVA mode detection by default
> 
> On 10/31/2017 7:17 PM, Tan, Jianfeng wrote:
> >
> >
> >> -----Original Message-----
> >> From: Yigit, Ferruh
> >> Sent: Wednesday, November 1, 2017 9:07 AM
> >> To: Thomas Monjalon; Richardson, Bruce; Gonzalez Monroy, Sergio
> >> Cc: dev at dpdk.org; Yigit, Ferruh; Tan, Jianfeng; Santosh Shukla
> >> Subject: [PATCH] eal: disable IOVA mode detection by default
> >>
> >> Fix kernel crash with KNI because KNI requires physical addresses.
> >>
> >> A config option introduced to disable IOVA mode detection and to set it
> >> to physical address by default. Disabling config option will enable IOVA
> >> mode detection.
> >>
> >> When there is no intension to use KNI, it is safe to enable detection.
> >>
> >> Config option disable IOVA mode detection by default to be sure only
> who
> >> is aware of result enable it.
> >>
> >> Fixes: 72d013644bd6 ("mem: honor IOVA mode in malloc virt2phy")
> >>
> >> Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
> >> ---
> >> Cc: Jianfeng Tan <jianfeng.tan at intel.com>
> >> Cc: Santosh Shukla <santosh.shukla at caviumnetworks.com>
> >> Cc: Thomas Monjalon <thomas at monjalon.net>
> >
> > Refer to how vhost-kernel works, we may leverage a memory region table
> to do the translation. The bad side is it's less efficient than current
> phys_to_virt.
> 
> Hi Jianfeng,
> 
> Can you please elaborate?

It is very similar to what Jacob proposed (KNI IOMMU).
1. Share memsegs (memory regions) with KNI, some pairs of (userspace_addr, length).
2. KNI maintains an address translation table, (userspace_addr, length, kernel_addr).
3. Every time we need a kernel va, we search the table to obtain the addr.

Thanks,
Jianfeng


> 
> Thanks,
> ferruh
> 
> > Another side, we did not check the result of phys_to_virt, that's why
> kernel crashes.
> >
> > Thanks,
> > Jianfeng
> >



More information about the dev mailing list