[dpdk-dev] [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag

Verma, Shally Shally.Verma at cavium.com
Thu Jul 5 10:38:50 CEST 2018



>-----Original Message-----
>From: Pablo de Lara [mailto:pablo.de.lara.guarch at intel.com]
>Sent: 04 July 2018 19:41
>To: Verma, Shally <Shally.Verma at cavium.com>; Gupta, Ashish <Ashish.Gupta at cavium.com>; fiona.trahe at intel.com;
>lee.daly at intel.com
>Cc: dev at dpdk.org; Pablo de Lara <pablo.de.lara.guarch at 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 at intel.com>
>Acked-by: Fiona Trahe <fiona.trahe at 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



More information about the dev mailing list