@Trahe, Fiona>> We're proposing, in the interest of getting the API out in 
18.05, to stick with mbufs - acknowledging
>> that they're not optimal for storage and we may propose changes in 18.08.
[Shally] Sounds good to us too.

@Ahmed Mansour . I am assuming that transferring from mbuf to regular buffers 
and back does
>not involve some time consuming work like data copying and such.
[Shally] I too assume copying shouldn't be a need and a big no-no. We normally 
extract and pass buf_addr from mbuf as it is to HW.
So implicit assumption is data memory is dma-able to device.

Thanks
Shally

>-----Original Message-----
>From: Ahmed Mansour [mailto:[email protected]]
>Sent: 15 March 2018 00:32
>To: Trahe, Fiona <[email protected]>; Verma, Shally 
><[email protected]>; [email protected]
>Cc: De Lara Guarch, Pablo <[email protected]>; Athreya, Narayana 
>Prasad <[email protected]>;
>Gupta, Ashish <[email protected]>; Sahu, Sunila 
><[email protected]>; Challa, Mahipal
><[email protected]>; Jain, Deepak K <[email protected]>; Hemant 
>Agrawal <[email protected]>; Roy
>Pledge <[email protected]>; Youri Querry <[email protected]>; Daly, Lee 
><[email protected]>; Jozwiak, TomaszX
><[email protected]>; Alok Makhariya <[email protected]>; 
>Shreyansh Jain <[email protected]>
>Subject: Re: [dpdk-dev] [PATCH] compressdev: implement API - mbuf alternative
>
>Hi All,
>
>Sticking with mbufs until at least 1805 works for us. We also see
>storage as the main use case, but ipcomp maybe an important customer use
>case in the future. Nonetheless, I see the mbuf formatting as inherently
>external to the compressdev APIs. An application doing ipcomp should
>just do the mbuf packaging outside of compressdev. At least that is what
>current software implementation of ipcomp do when using zlib.net. I am
>assuming that transferring from mbuf to regular buffers and back does
>not involve some time consuming work like data copying and such.
>
>Thanks,
>
>Ahmed
>
>On 3/14/2018 2:39 PM, Trahe, Fiona wrote:
>> Hi Shally, Ahmed, et al,
>>
>> Following internal and community feedback we've decided that there's still 
>> too much churn in this.
>> We're proposing, in the interest of getting the API out in 18.05, to stick 
>> with mbufs - acknowledging
>> that they're not optimal for storage and we may propose changes in 18.08.
>> Compressdev will start as an experimental API in 18.05 - we'll POC and 
>> benchmark alternatives
>> or API extensions once we get time to do so.
>>
>> Regards,
>> Fiona
>>
>>> -----Original Message-----
>>> From: Verma, Shally [mailto:[email protected]]
>>> Sent: Wednesday, March 14, 2018 12:51 PM
>>> To: Trahe, Fiona <[email protected]>; Ahmed Mansour 
>>> <[email protected]>; [email protected]
>>> Cc: De Lara Guarch, Pablo <[email protected]>; Athreya, 
>>> Narayana Prasad
>>> <[email protected]>; Gupta, Ashish 
>>> <[email protected]>; Sahu, Sunila
>>> <[email protected]>; Challa, Mahipal <[email protected]>; 
>>> Jain, Deepak K
>>> <[email protected]>; Hemant Agrawal <[email protected]>; Roy 
>>> Pledge
>>> <[email protected]>; Youri Querry <[email protected]>; Daly, Lee 
>>> <[email protected]>;
>>> Jozwiak, TomaszX <[email protected]>
>>> Subject: RE: [dpdk-dev] [PATCH] compressdev: implement API - mbuf 
>>> alternative
>>>
>>>
>>>
>>>> -----Original Message-----
>>>> From: Trahe, Fiona [mailto:[email protected]]
>>>> Sent: 13 March 2018 21:22
>>>> To: Verma, Shally <[email protected]>; Ahmed Mansour 
>>>> <[email protected]>;
>>> [email protected]
>>>> Cc: De Lara Guarch, Pablo <[email protected]>; Athreya, 
>>>> Narayana Prasad
>>> <[email protected]>;
>>>> Gupta, Ashish <[email protected]>; Sahu, Sunila 
>>>> <[email protected]>; Challa, Mahipal
>>>> <[email protected]>; Jain, Deepak K <[email protected]>; 
>>>> Hemant Agrawal
>>> <[email protected]>; Roy
>>>> Pledge <[email protected]>; Youri Querry <[email protected]>; Daly, 
>>>> Lee
>>> <[email protected]>; Jozwiak, TomaszX
>>>> <[email protected]>; Trahe, Fiona <[email protected]>
>>>> Subject: RE: [dpdk-dev] [PATCH] compressdev: implement API - mbuf 
>>>> alternative
>>>>
>>>> Hi Shally,
>>>>
>>>>> -----Original Message-----
>>>>> From: Verma, Shally [mailto:[email protected]]
>>>>> Sent: Tuesday, March 13, 2018 8:15 AM
>>>>> To: Trahe, Fiona <[email protected]>; Ahmed Mansour 
>>>>> <[email protected]>;
>>> [email protected]
>>>>> Cc: De Lara Guarch, Pablo <[email protected]>; Athreya, 
>>>>> Narayana Prasad
>>>>> <[email protected]>; Gupta, Ashish 
>>>>> <[email protected]>; Sahu, Sunila
>>>>> <[email protected]>; Challa, Mahipal <[email protected]>; 
>>>>> Jain, Deepak K
>>>>> <[email protected]>; Hemant Agrawal <[email protected]>; Roy 
>>>>> Pledge
>>>>> <[email protected]>; Youri Querry <[email protected]>; 
>>>>> [email protected]; Daly, Lee
>>>>> <[email protected]>; Jozwiak, TomaszX <[email protected]>
>>>>> Subject: RE: [dpdk-dev] [PATCH] compressdev: implement API - mbuf 
>>>>> alternative
>>>>>
>>>>> HI Fiona
>>>>>
>>>>> So I understand we're moving away from mbufs because of its size 
>>>>> limitation (64k) and cacheline
>>> overhead
>>>>> and their more suitability to n/w applications. Given that, I understand 
>>>>> benefit of having another
>>> structure
>>>>> to input data but then what is proposal for ipcomp like application where 
>>>>> mbuf usage may be a better
>>>>> option? Should we keep support for both (mbuf and this structure) so that 
>>>>> apps can use appropriate
>>> data
>>>>> structure depending on their requirement.
>>>> [Fiona] An application can use pass buffers from an mbuf or mbuf chain to 
>>>> compressdev by filling in the
>>>> compressdev struct fields with the mbuf meta-data, using 
>>>> rte_pktmbuf_data_len(),
>>>> rte_pktmbuf_mtod(), rte_pktmbuf_mtophys(), etc
>>>> For simplicity I'd prefer to offer only 1 rather than 2 data formats on 
>>>> the API.
>>>> We see storage applications rather than IPComp as the main use-case for 
>>>> compressdev, so would prefer
>>>> to optimise for that.
>>>> Do you think otherwise?
>>> [Shally] Yea. We plan to use it for ipcomp and other such possible n/w 
>>> apps. So, we envision mbuf support
>>> as necessary. So, I think we can add two APIs one which process on 
>>> rte_comp_op and other on rte_mbufs
>>> to make it simpler.
>>>
>>>>> Further comments, on github.
>>>>>
>>>>> Thanks
>>>>> Shally
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Trahe, Fiona [mailto:[email protected]]
>>>>>> Sent: 12 March 2018 21:31
>>>>>> To: Ahmed Mansour <[email protected]>; Verma, Shally 
>>>>>> <[email protected]>;
>>>>> [email protected]
>>>>>> Cc: De Lara Guarch, Pablo <[email protected]>; Athreya, 
>>>>>> Narayana Prasad
>>>>> <[email protected]>;
>>>>>> Gupta, Ashish <[email protected]>; Sahu, Sunila 
>>>>>> <[email protected]>; Challa,
>>> Mahipal
>>>>>> <[email protected]>; Jain, Deepak K <[email protected]>; 
>>>>>> Hemant Agrawal
>>>>> <[email protected]>; Roy
>>>>>> Pledge <[email protected]>; Youri Querry <[email protected]>; 
>>>>>> [email protected];
>>> Daly,
>>>>> Lee <[email protected]>;
>>>>>> Jozwiak, TomaszX <[email protected]>
>>>>>> Subject: RE: [dpdk-dev] [PATCH] compressdev: implement API - mbuf 
>>>>>> alternative
>>>>>>
>>>>>> Hi Shally, Ahmed, and anyone else interested in compressdev,
>>>>>>
>>>>>> I mentioned last week that we've been exploring using something other 
>>>>>> than mbufs to pass src/dst
>>>>> buffers to compressdev PMDs.
>>>>>> Reasons:
>>>>>> - mbuf data is limited to 64k-1 in each segment of a chained mbuf. Data 
>>>>>> for compression
>>>>>>    can be greater and it would add cycles to have to break up into 
>>>>>> smaller segments.
>>>>>> - data may originate in mbufs, but is more likely, particularly for 
>>>>>> storage use-cases,  to
>>>>>>    originate in other data structures.
>>>>>> - There's a 2 cache-line overhead for every segment in a chain, most of 
>>>>>> this data
>>>>>>    is network-related, not needed by compressdev
>>>>>> So moving to a custom structure would minimise memory overhead, remove 
>>>>>> restriction on 64k-1 size
>>> and
>>>>> give more flexibility if
>>>>>> compressdev ever needs any comp-specific meta-data.
>>>>>>
>>>>>> We've come up with a compressdev-specific structure using the struct 
>>>>>> iovec from sys/uio.h, which is
>>>>> commonly used by storage
>>>>>> applications. This would replace the src and dest mbufs in the  op.
>>>>>> I'll not include the code here - Pablo will push that to github shortly 
>>>>>> and we'd appreciate review
>>>>> comments there.
>>>>>> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpablodelara%2Fdpdk-draft-
>compressdev&data=02%7C01%7Cahmed.mansour%40nxp.com%7C6a8977f9b3714d58621708d589dae567%7C686ea1d3bc2b4c6fa92cd
>99c5c301635%7C0%7C0%7C636566495639618830&sdata=wmFrxeUNyXdxI5%2Fp5gCmyIRfeDnbHebBJXbztqdsMrc%3D&reserved=0
>>>>>> Just posting on the mailing list to give a heads-up and ensure this 
>>>>>> reaches a wider audience than may
>>> see
>>>>> it on github.
>>>>>> Note : We also considered having no data structures in the op, instead 
>>>>>> the application
>>>>>> would supply a callback which the PMD would use to retrieve meta-data 
>>>>>> (virt address, iova, length)
>>>>>> for each next segment as needed. While this is quite flexible and allow 
>>>>>> the application
>>>>>> to keep its data in its native structures, it's likely to cost more 
>>>>>> cycles.
>>>>>> So we're not proposing this at the moment, but hope to benchmark it 
>>>>>> later while the API is still
>>>>> experimental.
>>>>>> General feedback on direction is welcome here on the mailing list.
>>>>>> For feedback on the details of implementation we would appreciate 
>>>>>> comments on github.
>>>>>>
>>>>>> Regards,
>>>>>> Fiona.
>

Reply via email to