[dpdk-dev] dpdk 16.07, issues with rte_mempool_create and rte_kni_alloc()

Ferruh Yigit ferruh.yigit at intel.com
Wed Aug 10 12:51:22 CEST 2016


Hi Gopakumar,

On 8/4/2016 5:14 PM, Ferruh Yigit wrote:
> On 8/1/2016 10:19 PM, Gopakumar Choorakkot Edakkunni wrote:
>> Well, for my purpose I just ended up creating a seperate/smaller pool
>> earlier during bootup to try to guarantee its from one memseg.
>>
>> But I am assuming that this KNI restriction is something thats "currently"
>> not fixed and is "fixable" ? 
> 
> 
>> Any ideas on what the summary of the reason
>> for this restriction is - I was gonna check if I can fix that
> 
> KNI expects all mbufs are from a physically continuous memory. This is
> because of current address translation implementation.
> 
> mbufs allocated in userspace and accessed from both user and kernel
> space, so mbuf userspace virtual address needs to be converted into
> kernelspace virtual address.
> 
> Currently this address translation done by first calculating an offset
> between virtual addresses using first filed of mempool, later applying
> same offset to all mbufs. This is why all mbufs should be in physically
> continuous memory.
> 
> I think this address translation can be done in different way which can
> remove the restriction, but not sure about the effect of the
> performance. I will send a patch for this.

I have sent a patch to remove KNI restriction:
http://dpdk.org/dev/patchwork/patch/15171/

Can you please test this patch with a mempool with multiple memzone?
You need to remove following check in KNI manually:
    if (mp->nb_mem_chunks != 1)
        goto kni_fail;

Thanks,
ferruh



More information about the dev mailing list