[v3,3/4] compressdev: replace mbuf scatter gather flag

Message ID 20180704141037.44021-3-pablo.de.lara.guarch@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Pablo de Lara Guarch
Headers
Series [v3,1/4] doc: cleanup ISA-L PMD feature matrix |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

De Lara Guarch, Pablo July 4, 2018, 2:10 p.m. UTC
  The current mbuf scatter gather feature flag is
too ambiguous, as it is not clear if input and/or output
buffers can be scatter gather mbufs or not.

Therefore, three new flags will replace this flag:
- RTE_COMP_FF_OOP_SGL_IN_SGL_OUT
- RTE_COMP_FF_OOP_SGL_IN_FB_OUT
- RTE_COMP_FF_OOP_FB_IN_SGL_OUT

Note that out-of-place flat buffers is supported by default
and in-place is not supported by the library.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
---

Changes in v3:
- Replaced Out-of-place with OOP
- Added new feature flags in default.ini

Changes in v2:
- Fixed typos
- Rephrased comments

 doc/guides/compressdevs/features/default.ini | 34 +++++++++++++++-------------
 doc/guides/compressdevs/overview.rst         | 14 ++++++++++++
 doc/guides/rel_notes/release_18_08.rst       |  6 +++++
 lib/librte_compressdev/rte_comp.c            |  8 +++++--
 lib/librte_compressdev/rte_comp.h            | 30 ++++++++++++++++--------
 5 files changed, 64 insertions(+), 28 deletions(-)
  

Comments

Verma, Shally July 5, 2018, 8:38 a.m. UTC | #1
>-----Original Message-----
>From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
>Sent: 04 July 2018 19:41
>To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish <Ashish.Gupta@cavium.com>; fiona.trahe@intel.com;
>lee.daly@intel.com
>Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
>Subject: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
>
>External Email
>
>The current mbuf scatter gather feature flag is
>too ambiguous, as it is not clear if input and/or output
>buffers can be scatter gather mbufs or not.
>
>Therefore, three new flags will replace this flag:
>- RTE_COMP_FF_OOP_SGL_IN_SGL_OUT
>- RTE_COMP_FF_OOP_SGL_IN_FB_OUT
>- RTE_COMP_FF_OOP_FB_IN_SGL_OUT
>
[Shally] Believe Out of place is default support on current compression API, so why do we need _OOP_ here?

Thanks
Shally
>Note that out-of-place flat buffers is supported by default
>and in-place is not supported by the library.
>
>Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
>Acked-by: Fiona Trahe <fiona.trahe@intel.com>
>---
>
>Changes in v3:
>- Replaced Out-of-place with OOP
>- Added new feature flags in default.ini
>
>Changes in v2:
>- Fixed typos
>- Rephrased comments
>
> doc/guides/compressdevs/features/default.ini | 34 +++++++++++++++-------------
> doc/guides/compressdevs/overview.rst         | 14 ++++++++++++
> doc/guides/rel_notes/release_18_08.rst       |  6 +++++
> lib/librte_compressdev/rte_comp.c            |  8 +++++--
> lib/librte_compressdev/rte_comp.h            | 30 ++++++++++++++++--------
> 5 files changed, 64 insertions(+), 28 deletions(-)
>
>diff --git a/doc/guides/compressdevs/features/default.ini b/doc/guides/compressdevs/features/default.ini
>index a88414d23..003f3f3a5 100644
>--- a/doc/guides/compressdevs/features/default.ini
>+++ b/doc/guides/compressdevs/features/default.ini
>@@ -6,19 +6,21 @@
> ; the features table in the documentation.
> ;
> [Features]
>-HW Accelerated =
>-CPU SSE        =
>-CPU AVX        =
>-CPU AVX2       =
>-CPU AVX512     =
>-CPU NEON       =
>-Stateful       =
>-Pass-through   =
>-Chained mbufs  =
>-Deflate        =
>-LZS            =
>-Adler32        =
>-Crc32          =
>-Adler32&Crc32  =
>-Fixed          =
>-Dynamic        =
>+HW Accelerated      =
>+CPU SSE             =
>+CPU AVX             =
>+CPU AVX2            =
>+CPU AVX512          =
>+CPU NEON            =
>+Stateful            =
>+Pass-through        =
>+OOP SGL In SGL Out  =
>+OOP SGL In FB  Out  =
>+OOP FB  In SGL Out  =
>+Deflate             =
>+LZS                 =
>+Adler32             =
>+Crc32               =
>+Adler32&Crc32       =
>+Fixed               =
>+Dynamic             =
>diff --git a/doc/guides/compressdevs/overview.rst b/doc/guides/compressdevs/overview.rst
>index b16c36fd6..68205c77d 100644
>--- a/doc/guides/compressdevs/overview.rst
>+++ b/doc/guides/compressdevs/overview.rst
>@@ -15,3 +15,17 @@ Supported Feature Flags
>
>    - "Pass-through" feature flag refers to the ability of the PMD
>      to let mbufs pass-through it, without making any modifications to it.
>+
>+   - "OOP SGL In SGL Out" feature flag stands for
>+     "Out-of-place Scatter-gather list Input, Scatter-gater list Output",
>+     which means that the input and output mbufs can consist of multiple segments.
>+
>+   - "OOP SGL In FB Out" feature flag stands for
>+     "Out-of-place Scatter-gather list Input, Flat Buffers Output",
>+     which means that the input mbuf can consist of multiple segments combined
>+     with a single segment mbuf in the output.
>+
>+   - "OOP FB In SGL Out" feature flag stands for
>+     "Out-of-place Flat Buffers Input, Scatter-gather list Output",
>+     which means that the output mbuf can consist of multiple segments combined
>+     with a single segment mbuf in the input.
>diff --git a/doc/guides/rel_notes/release_18_08.rst b/doc/guides/rel_notes/release_18_08.rst
>index bc0124295..4ae37cb3b 100644
>--- a/doc/guides/rel_notes/release_18_08.rst
>+++ b/doc/guides/rel_notes/release_18_08.rst
>@@ -60,6 +60,12 @@ API Changes
>    Also, make sure to start the actual text at the margin.
>    =========================================================
>
>+* compressdev: Feature flag ``RTE_COMP_FF_MBUF_SCATTER_GATHER`` is
>+  replaced with the following more explicit flags:
>+  - ``RTE_COMP_FF_OOP_SGL_IN_SGL_OUT``
>+  - ``RTE_COMP_FF_OOP_SGL_IN_FB_OUT``
>+  - ``RTE_COMP_FF_OOP_FB_IN_SGL_OUT``
>+
>
> ABI Changes
> -----------
>diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
>index d596ba872..f5bd3a6c0 100644
>--- a/lib/librte_compressdev/rte_comp.c
>+++ b/lib/librte_compressdev/rte_comp.c
>@@ -14,8 +14,12 @@ rte_comp_get_feature_name(uint64_t flag)
>                return "STATEFUL_COMPRESSION";
>        case RTE_COMP_FF_STATEFUL_DECOMPRESSION:
>                return "STATEFUL_DECOMPRESSION";
>-       case RTE_COMP_FF_MBUF_SCATTER_GATHER:
>-               return "MBUF_SCATTER_GATHER";
>+       case RTE_COMP_FF_OOP_SGL_IN_SGL_OUT:
>+               return "OOP_SGL_IN_SGL_OUT";
>+       case RTE_COMP_FF_OOP_SGL_IN_FB_OUT:
>+               return "OOP_SGL_IN_FB_OUT";
>+       case RTE_COMP_FF_OOP_FB_IN_SGL_OUT:
>+               return "OOP_FB_IN_SGL_OUT";
>        case RTE_COMP_FF_MULTI_PKT_CHECKSUM:
>                return "MULTI_PKT_CHECKSUM";
>        case RTE_COMP_FF_ADLER32_CHECKSUM:
>diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
>index 5b513c77e..6660cee82 100644
>--- a/lib/librte_compressdev/rte_comp.h
>+++ b/lib/librte_compressdev/rte_comp.h
>@@ -30,23 +30,33 @@ extern "C" {
> /**< Stateful compression is supported */
> #define RTE_COMP_FF_STATEFUL_DECOMPRESSION     (1ULL << 1)
> /**< Stateful decompression is supported */
>-#define        RTE_COMP_FF_MBUF_SCATTER_GATHER         (1ULL << 2)
>-/**< Scatter-gather mbufs are supported */
>-#define RTE_COMP_FF_ADLER32_CHECKSUM           (1ULL << 3)
>+#define RTE_COMP_FF_OOP_SGL_IN_SGL_OUT         (1ULL << 2)
>+/**< Out-of-place Scatter-gather (SGL) mbufs are
>+ * supported in input and output
>+ */
>+#define RTE_COMP_FF_OOP_SGL_IN_FB_OUT          (1ULL << 3)
>+/**< Out-of-place Scatter-gather (SGL) mbufs are supported
>+ * in input, combined with flat buffers (FB) in output
>+ */
>+#define RTE_COMP_FF_OOP_FB_IN_SGL_OUT          (1ULL << 4)
>+/**< Out-of-place Scatter-gather (SGL) mbufs are supported
>+ * in output, combined with flat buffers (FB) in input
>+ */
>+#define RTE_COMP_FF_ADLER32_CHECKSUM           (1ULL << 5)
> /**< Adler-32 Checksum is supported */
>-#define RTE_COMP_FF_CRC32_CHECKSUM             (1ULL << 4)
>+#define RTE_COMP_FF_CRC32_CHECKSUM             (1ULL << 6)
> /**< CRC32 Checksum is supported */
>-#define RTE_COMP_FF_CRC32_ADLER32_CHECKSUM     (1ULL << 5)
>+#define RTE_COMP_FF_CRC32_ADLER32_CHECKSUM     (1ULL << 7)
> /**< Adler-32/CRC32 Checksum is supported */
>-#define RTE_COMP_FF_MULTI_PKT_CHECKSUM         (1ULL << 6)
>+#define RTE_COMP_FF_MULTI_PKT_CHECKSUM         (1ULL << 8)
> /**< Generation of checksum across multiple stateless packets is supported */
>-#define RTE_COMP_FF_SHA1_HASH                  (1ULL << 7)
>+#define RTE_COMP_FF_SHA1_HASH                  (1ULL << 9)
> /**< SHA1 Hash is supported */
>-#define RTE_COMP_FF_SHA2_SHA256_HASH           (1ULL << 8)
>+#define RTE_COMP_FF_SHA2_SHA256_HASH           (1ULL << 10)
> /**< SHA256 Hash of SHA2 family is supported */
>-#define RTE_COMP_FF_NONCOMPRESSED_BLOCKS       (1ULL << 9)
>+#define RTE_COMP_FF_NONCOMPRESSED_BLOCKS       (1ULL << 11)
> /**< Creation of non-compressed blocks using RTE_COMP_LEVEL_NONE is supported */
>-#define RTE_COMP_FF_SHAREABLE_PRIV_XFORM       (1ULL << 10)
>+#define RTE_COMP_FF_SHAREABLE_PRIV_XFORM       (1ULL << 12)
> /**< Private xforms created by the PMD can be shared
>  * across multiple stateless operations. If not set, then app needs
>  * to create as many priv_xforms as it expects to have stateless
>--
>2.14.4
  
De Lara Guarch, Pablo July 5, 2018, 11:05 a.m. UTC | #2
> -----Original Message-----
> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
> Sent: Thursday, July 5, 2018 9:39 AM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta, Ashish
> <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee
> <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
> 
> 
> 
> >-----Original Message-----
> >From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
> >Sent: 04 July 2018 19:41
> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> ><Ashish.Gupta@cavium.com>; fiona.trahe@intel.com; lee.daly@intel.com
> >Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
> >Subject: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
> >
> >External Email
> >
> >The current mbuf scatter gather feature flag is too ambiguous, as it is
> >not clear if input and/or output buffers can be scatter gather mbufs or
> >not.
> >
> >Therefore, three new flags will replace this flag:
> >- RTE_COMP_FF_OOP_SGL_IN_SGL_OUT
> >- RTE_COMP_FF_OOP_SGL_IN_FB_OUT
> >- RTE_COMP_FF_OOP_FB_IN_SGL_OUT
> >
> [Shally] Believe Out of place is default support on current compression API, so
> why do we need _OOP_ here?

Hi Shally,

You are right, but I just wanted to clarify that the scenario is for Out of place only.

Thanks,
Pablo

> 
> Thanks
> Shally
> >Note that out-of-place flat buffers is supported by default and
> >in-place is not supported by the library.
> >
> >Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> >Acked-by: Fiona Trahe <fiona.trahe@intel.com>
  
Verma, Shally July 5, 2018, 11:12 a.m. UTC | #3
>-----Original Message-----
>From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
>Sent: 05 July 2018 16:36
>To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>;
>Daly, Lee <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
>Cc: dev@dpdk.org
>Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
>
>External Email
>
>> -----Original Message-----
>> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
>> Sent: Thursday, July 5, 2018 9:39 AM
>> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta, Ashish
>> <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee
>> <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
>> Cc: dev@dpdk.org
>> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
>>
>>
>>
>> >-----Original Message-----
>> >From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
>> >Sent: 04 July 2018 19:41
>> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
>> ><Ashish.Gupta@cavium.com>; fiona.trahe@intel.com; lee.daly@intel.com
>> >Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
>> >Subject: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
>> >
>> >External Email
>> >
>> >The current mbuf scatter gather feature flag is too ambiguous, as it is
>> >not clear if input and/or output buffers can be scatter gather mbufs or
>> >not.
>> >
>> >Therefore, three new flags will replace this flag:
>> >- RTE_COMP_FF_OOP_SGL_IN_SGL_OUT
>> >- RTE_COMP_FF_OOP_SGL_IN_FB_OUT
>> >- RTE_COMP_FF_OOP_FB_IN_SGL_OUT
>> >
>> [Shally] Believe Out of place is default support on current compression API, so
>> why do we need _OOP_ here?
>
>Hi Shally,
>
>You are right, but I just wanted to clarify that the scenario is for Out of place only.
>
Ok. But that looks redundant to me. Though not likely, tomorrow if some algo support in-place,
Then we will end up adding in_place equivalent of same. So would prefer to keep naming generic of in/out place
and specific to Scatter-gather in/out support.

>Thanks,
>Pablo
>
>>
>> Thanks
>> Shally
>> >Note that out-of-place flat buffers is supported by default and
>> >in-place is not supported by the library.
>> >
>> >Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
>> >Acked-by: Fiona Trahe <fiona.trahe@intel.com>
  
De Lara Guarch, Pablo July 5, 2018, 11:25 a.m. UTC | #4
> -----Original Message-----
> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
> Sent: Thursday, July 5, 2018 12:13 PM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta, Ashish
> <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee
> <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
> 
> 
> 
> >-----Original Message-----
> >From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
> >Sent: 05 July 2018 16:36
> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> ><Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly,
> >Lee <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
> >Cc: dev@dpdk.org
> >Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >flag
> >
> >External Email
> >
> >> -----Original Message-----
> >> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
> >> Sent: Thursday, July 5, 2018 9:39 AM
> >> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta,
> >> Ashish <Ashish.Gupta@cavium.com>; Trahe, Fiona
> >> <fiona.trahe@intel.com>; Daly, Lee <lee.daly@intel.com>; Sahu, Sunila
> >> <Sunila.Sahu@cavium.com>
> >> Cc: dev@dpdk.org
> >> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >> flag
> >>
> >>
> >>
> >> >-----Original Message-----
> >> >From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
> >> >Sent: 04 July 2018 19:41
> >> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> >> ><Ashish.Gupta@cavium.com>; fiona.trahe@intel.com; lee.daly@intel.com
> >> >Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
> >> >Subject: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >> >flag
> >> >
> >> >External Email
> >> >
> >> >The current mbuf scatter gather feature flag is too ambiguous, as it
> >> >is not clear if input and/or output buffers can be scatter gather
> >> >mbufs or not.
> >> >
> >> >Therefore, three new flags will replace this flag:
> >> >- RTE_COMP_FF_OOP_SGL_IN_SGL_OUT
> >> >- RTE_COMP_FF_OOP_SGL_IN_FB_OUT
> >> >- RTE_COMP_FF_OOP_FB_IN_SGL_OUT
> >> >
> >> [Shally] Believe Out of place is default support on current
> >> compression API, so why do we need _OOP_ here?
> >
> >Hi Shally,
> >
> >You are right, but I just wanted to clarify that the scenario is for Out of place
> only.
> >
> Ok. But that looks redundant to me. Though not likely, tomorrow if some algo
> support in-place, Then we will end up adding in_place equivalent of same. So
> would prefer to keep naming generic of in/out place and specific to Scatter-
> gather in/out support.

I think I am not quite following you. Actually, if in the future we support
In-place, then it is important to have OOP in the macro, to specify that SGL
is supported for Out-of-place and maybe not in-place (like in cryptodev).
Otherwise, we would need to break the API, which can be avoided now.

Thanks,
Pablo

> 
> >Thanks,
> >Pablo
> >
> >>
> >> Thanks
> >> Shally
> >> >Note that out-of-place flat buffers is supported by default and
> >> >in-place is not supported by the library.
> >> >
> >> >Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> >> >Acked-by: Fiona Trahe <fiona.trahe@intel.com>
  
Verma, Shally July 5, 2018, 11:58 a.m. UTC | #5
>-----Original Message-----
>From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
>Sent: 05 July 2018 16:56
>To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>;
>Daly, Lee <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
>Cc: dev@dpdk.org
>Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
>
>External Email
>
>> -----Original Message-----
>> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
>> Sent: Thursday, July 5, 2018 12:13 PM
>> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta, Ashish
>> <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee
>> <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
>> Cc: dev@dpdk.org
>> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
>>
>>
>>
>> >-----Original Message-----
>> >From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
>> >Sent: 05 July 2018 16:36
>> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
>> ><Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly,
>> >Lee <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
>> >Cc: dev@dpdk.org
>> >Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
>> >flag
>> >
>> >External Email
>> >
>> >> -----Original Message-----
>> >> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
>> >> Sent: Thursday, July 5, 2018 9:39 AM
>> >> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta,
>> >> Ashish <Ashish.Gupta@cavium.com>; Trahe, Fiona
>> >> <fiona.trahe@intel.com>; Daly, Lee <lee.daly@intel.com>; Sahu, Sunila
>> >> <Sunila.Sahu@cavium.com>
>> >> Cc: dev@dpdk.org
>> >> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
>> >> flag
>> >>
>> >>
>> >>
>> >> >-----Original Message-----
>> >> >From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
>> >> >Sent: 04 July 2018 19:41
>> >> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
>> >> ><Ashish.Gupta@cavium.com>; fiona.trahe@intel.com; lee.daly@intel.com
>> >> >Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
>> >> >Subject: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
>> >> >flag
>> >> >
>> >> >External Email
>> >> >
>> >> >The current mbuf scatter gather feature flag is too ambiguous, as it
>> >> >is not clear if input and/or output buffers can be scatter gather
>> >> >mbufs or not.
>> >> >
>> >> >Therefore, three new flags will replace this flag:
>> >> >- RTE_COMP_FF_OOP_SGL_IN_SGL_OUT
>> >> >- RTE_COMP_FF_OOP_SGL_IN_FB_OUT
>> >> >- RTE_COMP_FF_OOP_FB_IN_SGL_OUT
>> >> >
>> >> [Shally] Believe Out of place is default support on current
>> >> compression API, so why do we need _OOP_ here?
>> >
>> >Hi Shally,
>> >
>> >You are right, but I just wanted to clarify that the scenario is for Out of place
>> only.
>> >
>> Ok. But that looks redundant to me. Though not likely, tomorrow if some algo
>> support in-place, Then we will end up adding in_place equivalent of same. So
>> would prefer to keep naming generic of in/out place and specific to Scatter-
>> gather in/out support.
>
>I think I am not quite following you. Actually, if in the future we support
>In-place, then it is important to have OOP in the macro, to specify that SGL
>is supported for Out-of-place and maybe not in-place (like in cryptodev).
>Otherwise, we would need to break the API, which can be avoided now.

Ohh okay, now I get it. So these feature flags intend to show input/output mode supported
specifically for in/out of place operations.  But then still I see having OOP isn't required as compression
default support is out-of-place and it's just making feature name too big. Having in-place is exception 
and if supported, can use convention RTE_COMP_FF_INPLACE_xx

Above one comment, as I see it, use of FB in RTE_COMP_FF_OOP_FB_IN_SGL_OUT didn't give clear indication what it mean.
May be replace it by RTE_COMP_FF_OOP_DIRECT/LINEAR_IN_SGL_OUT

Just few suggestions.
Thanks
Shally

- 



>
>Thanks,
>Pablo
>
>>
>> >Thanks,
>> >Pablo
>> >
>> >>
>> >> Thanks
>> >> Shally
>> >> >Note that out-of-place flat buffers is supported by default and
>> >> >in-place is not supported by the library.
>> >> >
>> >> >Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
>> >> >Acked-by: Fiona Trahe <fiona.trahe@intel.com>
  
De Lara Guarch, Pablo July 6, 2018, 8:40 a.m. UTC | #6
> -----Original Message-----
> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
> Sent: Thursday, July 5, 2018 12:59 PM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta, Ashish
> <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee
> <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
> 
> 
> 
> >-----Original Message-----
> >From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
> >Sent: 05 July 2018 16:56
> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> ><Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly,
> >Lee <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
> >Cc: dev@dpdk.org
> >Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >flag
> >
> >External Email
> >
> >> -----Original Message-----
> >> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
> >> Sent: Thursday, July 5, 2018 12:13 PM
> >> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta,
> >> Ashish <Ashish.Gupta@cavium.com>; Trahe, Fiona
> >> <fiona.trahe@intel.com>; Daly, Lee <lee.daly@intel.com>; Sahu, Sunila
> >> <Sunila.Sahu@cavium.com>
> >> Cc: dev@dpdk.org
> >> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >> flag
> >>
> >>
> >>
> >> >-----Original Message-----
> >> >From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
> >> >Sent: 05 July 2018 16:36
> >> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> >> ><Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>;
> >> >Daly, Lee <lee.daly@intel.com>; Sahu, Sunila
> >> ><Sunila.Sahu@cavium.com>
> >> >Cc: dev@dpdk.org
> >> >Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >> >flag
> >> >
> >> >External Email
> >> >
> >> >> -----Original Message-----
> >> >> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
> >> >> Sent: Thursday, July 5, 2018 9:39 AM
> >> >> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta,
> >> >> Ashish <Ashish.Gupta@cavium.com>; Trahe, Fiona
> >> >> <fiona.trahe@intel.com>; Daly, Lee <lee.daly@intel.com>; Sahu,
> >> >> Sunila <Sunila.Sahu@cavium.com>
> >> >> Cc: dev@dpdk.org
> >> >> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter
> >> >> gather flag
> >> >>
> >> >>
> >> >>
> >> >> >-----Original Message-----
> >> >> >From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
> >> >> >Sent: 04 July 2018 19:41
> >> >> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> >> >> ><Ashish.Gupta@cavium.com>; fiona.trahe@intel.com;
> >> >> >lee.daly@intel.com
> >> >> >Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
> >> >> >Subject: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >> >> >flag
> >> >> >
> >> >> >External Email
> >> >> >
> >> >> >The current mbuf scatter gather feature flag is too ambiguous, as
> >> >> >it is not clear if input and/or output buffers can be scatter
> >> >> >gather mbufs or not.
> >> >> >
> >> >> >Therefore, three new flags will replace this flag:
> >> >> >- RTE_COMP_FF_OOP_SGL_IN_SGL_OUT
> >> >> >- RTE_COMP_FF_OOP_SGL_IN_FB_OUT
> >> >> >- RTE_COMP_FF_OOP_FB_IN_SGL_OUT
> >> >> >
> >> >> [Shally] Believe Out of place is default support on current
> >> >> compression API, so why do we need _OOP_ here?
> >> >
> >> >Hi Shally,
> >> >
> >> >You are right, but I just wanted to clarify that the scenario is for
> >> >Out of place
> >> only.
> >> >
> >> Ok. But that looks redundant to me. Though not likely, tomorrow if
> >> some algo support in-place, Then we will end up adding in_place
> >> equivalent of same. So would prefer to keep naming generic of in/out
> >> place and specific to Scatter- gather in/out support.
> >
> >I think I am not quite following you. Actually, if in the future we
> >support In-place, then it is important to have OOP in the macro, to
> >specify that SGL is supported for Out-of-place and maybe not in-place (like in
> cryptodev).
> >Otherwise, we would need to break the API, which can be avoided now.
> 
> Ohh okay, now I get it. So these feature flags intend to show input/output mode
> supported specifically for in/out of place operations.  But then still I see having
> OOP isn't required as compression default support is out-of-place and it's just
> making feature name too big. Having in-place is exception and if supported, can
> use convention RTE_COMP_FF_INPLACE_xx

I would still prefer having OOP, to be consistent with cryptodev. It is also not that long, it is just 3 letters.

> 
> Above one comment, as I see it, use of FB in
> RTE_COMP_FF_OOP_FB_IN_SGL_OUT didn't give clear indication what it mean.
> May be replace it by RTE_COMP_FF_OOP_DIRECT/LINEAR_IN_SGL_OUT

Linear could be a good option, but it is missing a noun there. What about LB (linear buffer), so we keep it short too.

Pablo
  
Verma, Shally July 6, 2018, 8:53 a.m. UTC | #7
>-----Original Message-----
>From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
>Sent: 06 July 2018 14:10
>To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>;
>Daly, Lee <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
>Cc: dev@dpdk.org
>Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
>

//snip

>> Ohh okay, now I get it. So these feature flags intend to show input/output mode
>> supported specifically for in/out of place operations.  But then still I see having
>> OOP isn't required as compression default support is out-of-place and it's just
>> making feature name too big. Having in-place is exception and if supported, can
>> use convention RTE_COMP_FF_INPLACE_xx
>
>I would still prefer having OOP, to be consistent with cryptodev. It is also not that long, it is just 3 letters.
>
>>
>> Above one comment, as I see it, use of FB in
>> RTE_COMP_FF_OOP_FB_IN_SGL_OUT didn't give clear indication what it mean.
>> May be replace it by RTE_COMP_FF_OOP_DIRECT/LINEAR_IN_SGL_OUT
>
>Linear could be a good option, but it is missing a noun there. What about LB (linear buffer), so we keep it short too.

Ok. LB looks fine. hopefully, that will make apparent to reader, that it's opposite of Scatter-Gather.

Thanks
Shally

>
>Pablo
  
De Lara Guarch, Pablo July 6, 2018, 8:59 a.m. UTC | #8
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Verma, Shally
> Sent: Friday, July 6, 2018 9:53 AM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta, Ashish
> <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee
> <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v3 3/4] compressdev: replace mbuf scatter
> gather flag
> 
> 
> 
> >-----Original Message-----
> >From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
> >Sent: 06 July 2018 14:10
> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> ><Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly,
> >Lee <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
> >Cc: dev@dpdk.org
> >Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >flag
> >
> 
> //snip
> 
> >> Ohh okay, now I get it. So these feature flags intend to show
> >> input/output mode supported specifically for in/out of place
> >> operations.  But then still I see having OOP isn't required as
> >> compression default support is out-of-place and it's just making
> >> feature name too big. Having in-place is exception and if supported,
> >> can use convention RTE_COMP_FF_INPLACE_xx
> >
> >I would still prefer having OOP, to be consistent with cryptodev. It is also not
> that long, it is just 3 letters.
> >
> >>
> >> Above one comment, as I see it, use of FB in
> >> RTE_COMP_FF_OOP_FB_IN_SGL_OUT didn't give clear indication what it
> mean.
> >> May be replace it by RTE_COMP_FF_OOP_DIRECT/LINEAR_IN_SGL_OUT
> >
> >Linear could be a good option, but it is missing a noun there. What about LB
> (linear buffer), so we keep it short too.
> 
> Ok. LB looks fine. hopefully, that will make apparent to reader, that it's opposite
> of Scatter-Gather.

I can clarify a bit more in the comments.

Thanks,
Pablo

> 
> Thanks
> Shally
> 
> >
> >Pablo
  

Patch

diff --git a/doc/guides/compressdevs/features/default.ini b/doc/guides/compressdevs/features/default.ini
index a88414d23..003f3f3a5 100644
--- a/doc/guides/compressdevs/features/default.ini
+++ b/doc/guides/compressdevs/features/default.ini
@@ -6,19 +6,21 @@ 
 ; the features table in the documentation.
 ;
 [Features]
-HW Accelerated =
-CPU SSE        =
-CPU AVX        =
-CPU AVX2       =
-CPU AVX512     =
-CPU NEON       =
-Stateful       =
-Pass-through   =
-Chained mbufs  =
-Deflate        =
-LZS            =
-Adler32        =
-Crc32          =
-Adler32&Crc32  =
-Fixed          =
-Dynamic        =
+HW Accelerated      =
+CPU SSE             =
+CPU AVX             =
+CPU AVX2            =
+CPU AVX512          =
+CPU NEON            =
+Stateful            =
+Pass-through        =
+OOP SGL In SGL Out  =
+OOP SGL In FB  Out  =
+OOP FB  In SGL Out  =
+Deflate             =
+LZS                 =
+Adler32             =
+Crc32               =
+Adler32&Crc32       =
+Fixed               =
+Dynamic             =
diff --git a/doc/guides/compressdevs/overview.rst b/doc/guides/compressdevs/overview.rst
index b16c36fd6..68205c77d 100644
--- a/doc/guides/compressdevs/overview.rst
+++ b/doc/guides/compressdevs/overview.rst
@@ -15,3 +15,17 @@  Supported Feature Flags
 
    - "Pass-through" feature flag refers to the ability of the PMD
      to let mbufs pass-through it, without making any modifications to it.
+
+   - "OOP SGL In SGL Out" feature flag stands for
+     "Out-of-place Scatter-gather list Input, Scatter-gater list Output",
+     which means that the input and output mbufs can consist of multiple segments.
+
+   - "OOP SGL In FB Out" feature flag stands for
+     "Out-of-place Scatter-gather list Input, Flat Buffers Output",
+     which means that the input mbuf can consist of multiple segments combined
+     with a single segment mbuf in the output.
+
+   - "OOP FB In SGL Out" feature flag stands for
+     "Out-of-place Flat Buffers Input, Scatter-gather list Output",
+     which means that the output mbuf can consist of multiple segments combined
+     with a single segment mbuf in the input.
diff --git a/doc/guides/rel_notes/release_18_08.rst b/doc/guides/rel_notes/release_18_08.rst
index bc0124295..4ae37cb3b 100644
--- a/doc/guides/rel_notes/release_18_08.rst
+++ b/doc/guides/rel_notes/release_18_08.rst
@@ -60,6 +60,12 @@  API Changes
    Also, make sure to start the actual text at the margin.
    =========================================================
 
+* compressdev: Feature flag ``RTE_COMP_FF_MBUF_SCATTER_GATHER`` is
+  replaced with the following more explicit flags:
+  - ``RTE_COMP_FF_OOP_SGL_IN_SGL_OUT``
+  - ``RTE_COMP_FF_OOP_SGL_IN_FB_OUT``
+  - ``RTE_COMP_FF_OOP_FB_IN_SGL_OUT``
+
 
 ABI Changes
 -----------
diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
index d596ba872..f5bd3a6c0 100644
--- a/lib/librte_compressdev/rte_comp.c
+++ b/lib/librte_compressdev/rte_comp.c
@@ -14,8 +14,12 @@  rte_comp_get_feature_name(uint64_t flag)
 		return "STATEFUL_COMPRESSION";
 	case RTE_COMP_FF_STATEFUL_DECOMPRESSION:
 		return "STATEFUL_DECOMPRESSION";
-	case RTE_COMP_FF_MBUF_SCATTER_GATHER:
-		return "MBUF_SCATTER_GATHER";
+	case RTE_COMP_FF_OOP_SGL_IN_SGL_OUT:
+		return "OOP_SGL_IN_SGL_OUT";
+	case RTE_COMP_FF_OOP_SGL_IN_FB_OUT:
+		return "OOP_SGL_IN_FB_OUT";
+	case RTE_COMP_FF_OOP_FB_IN_SGL_OUT:
+		return "OOP_FB_IN_SGL_OUT";
 	case RTE_COMP_FF_MULTI_PKT_CHECKSUM:
 		return "MULTI_PKT_CHECKSUM";
 	case RTE_COMP_FF_ADLER32_CHECKSUM:
diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
index 5b513c77e..6660cee82 100644
--- a/lib/librte_compressdev/rte_comp.h
+++ b/lib/librte_compressdev/rte_comp.h
@@ -30,23 +30,33 @@  extern "C" {
 /**< Stateful compression is supported */
 #define RTE_COMP_FF_STATEFUL_DECOMPRESSION	(1ULL << 1)
 /**< Stateful decompression is supported */
-#define	RTE_COMP_FF_MBUF_SCATTER_GATHER		(1ULL << 2)
-/**< Scatter-gather mbufs are supported */
-#define RTE_COMP_FF_ADLER32_CHECKSUM		(1ULL << 3)
+#define RTE_COMP_FF_OOP_SGL_IN_SGL_OUT		(1ULL << 2)
+/**< Out-of-place Scatter-gather (SGL) mbufs are
+ * supported in input and output
+ */
+#define RTE_COMP_FF_OOP_SGL_IN_FB_OUT		(1ULL << 3)
+/**< Out-of-place Scatter-gather (SGL) mbufs are supported
+ * in input, combined with flat buffers (FB) in output
+ */
+#define RTE_COMP_FF_OOP_FB_IN_SGL_OUT		(1ULL << 4)
+/**< Out-of-place Scatter-gather (SGL) mbufs are supported
+ * in output, combined with flat buffers (FB) in input
+ */
+#define RTE_COMP_FF_ADLER32_CHECKSUM		(1ULL << 5)
 /**< Adler-32 Checksum is supported */
-#define RTE_COMP_FF_CRC32_CHECKSUM		(1ULL << 4)
+#define RTE_COMP_FF_CRC32_CHECKSUM		(1ULL << 6)
 /**< CRC32 Checksum is supported */
-#define RTE_COMP_FF_CRC32_ADLER32_CHECKSUM	(1ULL << 5)
+#define RTE_COMP_FF_CRC32_ADLER32_CHECKSUM	(1ULL << 7)
 /**< Adler-32/CRC32 Checksum is supported */
-#define RTE_COMP_FF_MULTI_PKT_CHECKSUM		(1ULL << 6)
+#define RTE_COMP_FF_MULTI_PKT_CHECKSUM		(1ULL << 8)
 /**< Generation of checksum across multiple stateless packets is supported */
-#define RTE_COMP_FF_SHA1_HASH			(1ULL << 7)
+#define RTE_COMP_FF_SHA1_HASH			(1ULL << 9)
 /**< SHA1 Hash is supported */
-#define RTE_COMP_FF_SHA2_SHA256_HASH		(1ULL << 8)
+#define RTE_COMP_FF_SHA2_SHA256_HASH		(1ULL << 10)
 /**< SHA256 Hash of SHA2 family is supported */
-#define RTE_COMP_FF_NONCOMPRESSED_BLOCKS	(1ULL << 9)
+#define RTE_COMP_FF_NONCOMPRESSED_BLOCKS	(1ULL << 11)
 /**< Creation of non-compressed blocks using RTE_COMP_LEVEL_NONE is supported */
-#define RTE_COMP_FF_SHAREABLE_PRIV_XFORM	(1ULL << 10)
+#define RTE_COMP_FF_SHAREABLE_PRIV_XFORM	(1ULL << 12)
 /**< Private xforms created by the PMD can be shared
  * across multiple stateless operations. If not set, then app needs
  * to create as many priv_xforms as it expects to have stateless