[dpdk-dev] [PATCH] compressdev: add feature flag to specify where processing is done

Verma, Shally Shally.Verma at cavium.com
Tue Nov 20 06:17:19 CET 2018


HI Fiona

>-----Original Message-----
>From: Fiona Trahe <fiona.trahe at intel.com>
>Sent: 20 November 2018 07:10
>To: dev at dpdk.org
>Cc: akhil.goyal at nxp.com; tomaszx.jozwiak at intel.com; Verma, Shally <Shally.Verma at cavium.com>; Gupta, Ashish
><Ashish.Gupta at cavium.com>; lee.daly at intel.com; fiona.trahe at intel.com
>Subject: [PATCH] compressdev: add feature flag to specify where processing is done
>
>External Email
>
>A new device feature flag, RTE_COMPDEV_FF_SW_OP_DONE_IN_DEQUEUE
>is added. A PMD which processes operations using a software
>acceleration engine should set this if the bulk of the
>processing is done during the dequeue. It should leave it
>cleared if the bulk of the processing is done during the
>enqueue (default).
>An application may find this useful for tuning.

Help me understand a bit , so how does it work when:
1. PMD do ops processing only at enqueue , will not set this flag?
2. PMD do ops processing only at dequeue, then?
3. PMD can do op processing both at enqueue and dequeue and in such case,  can set this flag to indicate this support? So that app can choose?

if supported then app set this feature flag on PMD and PMD take it as a hint to know application preference of processing point or PMD always do bulk processing at chosen point?

And why specific to SW PMD, I see HW PMD can do use this feature flag?!

Thanks
Shally

>
>Signed-off-by: Fiona Trahe <fiona.trahe at intel.com>
>---
> lib/librte_compressdev/rte_compressdev.c | 2 ++
> lib/librte_compressdev/rte_compressdev.h | 8 ++++++++
> 2 files changed, 10 insertions(+)
>
>diff --git a/lib/librte_compressdev/rte_compressdev.c b/lib/librte_compressdev/rte_compressdev.c
>index 10101eb..90d6862 100644
>--- a/lib/librte_compressdev/rte_compressdev.c
>+++ b/lib/librte_compressdev/rte_compressdev.c
>@@ -66,6 +66,8 @@ rte_compressdev_get_feature_name(uint64_t flag)
>                return "CPU_AVX512";
>        case RTE_COMPDEV_FF_CPU_NEON:
>                return "CPU_NEON";
>+       case RTE_COMPDEV_FF_SW_OP_DONE_IN_DEQUEUE:
>+               return "OP_DONE_IN_DEQ";
>        default:
>                return NULL;
>        }
>diff --git a/lib/librte_compressdev/rte_compressdev.h b/lib/librte_compressdev/rte_compressdev.h
>index 7b68170..0fc8ed1 100644
>--- a/lib/librte_compressdev/rte_compressdev.h
>+++ b/lib/librte_compressdev/rte_compressdev.h
>@@ -73,6 +73,14 @@ rte_compressdev_capability_get(uint8_t dev_id,
> /**< Utilises CPU SIMD AVX512 instructions */
> #define        RTE_COMPDEV_FF_CPU_NEON                 (1ULL << 5)
> /**< Utilises CPU NEON instructions */
>+#define RTE_COMPDEV_FF_SW_OP_DONE_IN_DEQUEUE   (1ULL << 6)
>+/**< Only applicable when RTE_COMPDEV_FF_HW_ACCELERATED flag
>+ * is not set. A PMD which processes operations using a software
>+ * acceleration engine should set this if the bulk of the
>+ * processing is done during the dequeue. It should leave it
>+ * cleared if the processing is done during the enqueue (default).
>+ * An application may find this useful for tuning.
>+ */
>
> /**
>  * Get the name of a compress device feature flag.
>--
>2.7.4



More information about the dev mailing list