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.
Further comments, on github. Thanks Shally >-----Original Message----- >From: Trahe, Fiona [mailto:fiona.tr...@intel.com] >Sent: 12 March 2018 21:31 >To: Ahmed Mansour <ahmed.mans...@nxp.com>; Verma, Shally ><shally.ve...@cavium.com>; dev@dpdk.org >Cc: De Lara Guarch, Pablo <pablo.de.lara.gua...@intel.com>; Athreya, Narayana >Prasad <narayanaprasad.athr...@cavium.com>; >Gupta, Ashish <ashish.gu...@cavium.com>; Sahu, Sunila ><sunila.s...@cavium.com>; Challa, Mahipal ><mahipal.cha...@cavium.com>; Jain, Deepak K <deepak.k.j...@intel.com>; Hemant >Agrawal <hemant.agra...@nxp.com>; Roy >Pledge <roy.ple...@nxp.com>; Youri Querry <youri.querr...@nxp.com>; >fiona.tr...@gmail.com; Daly, Lee <lee.d...@intel.com>; >Jozwiak, TomaszX <tomaszx.jozw...@intel.com> >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://github.com/pablodelara/dpdk-draft-compressdev >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.