[dpdk-dev] [PATCH 2/2] compressdev: add huffman encoding flags

De Lara Guarch, Pablo pablo.de.lara.guarch at intel.com
Wed Jun 27 17:36:23 CEST 2018



> -----Original Message-----
> From: Trahe, Fiona
> Sent: Wednesday, June 27, 2018 4:23 PM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch at intel.com>;
> ashish.gupta at caviumnetworks.com; Daly, Lee <lee.daly at intel.com>
> Cc: dev at dpdk.org; Trahe, Fiona <fiona.trahe at intel.com>
> Subject: RE: [PATCH 2/2] compressdev: add huffman encoding flags
> 
> Hi Pablo,
> 
> 
> > -----Original Message-----
> > From: De Lara Guarch, Pablo
> > Sent: Wednesday, June 27, 2018 6:51 AM
> > To: Trahe, Fiona <fiona.trahe at intel.com>;
> > ashish.gupta at caviumnetworks.com; Daly, Lee <lee.daly at intel.com>
> > Cc: dev at dpdk.org; De Lara Guarch, Pablo
> > <pablo.de.lara.guarch at intel.com>
> > Subject: [PATCH 2/2] compressdev: add huffman encoding flags
> >
> > Added Huffman fixed and dynamic encoding feature flags, so an
> > application can query if a device supports these two types, when
> > performing DEFLATE compression.
> >
> > Signed-off-by: Pablo de Lara <pablo.de.lara.guarch at intel.com>
> > ---
> >  drivers/compress/isal/isal_compress_pmd_ops.c | 4 +++-
> >  lib/librte_compressdev/rte_comp.c             | 4 ++++
> >  lib/librte_compressdev/rte_comp.h             | 4 ++++
> >  3 files changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/compress/isal/isal_compress_pmd_ops.c
> > b/drivers/compress/isal/isal_compress_pmd_ops.c
> > index 970a0413b..585f22802 100644
> > --- a/drivers/compress/isal/isal_compress_pmd_ops.c
> > +++ b/drivers/compress/isal/isal_compress_pmd_ops.c
> > @@ -12,7 +12,9 @@
> >  static const struct rte_compressdev_capabilities isal_pmd_capabilities[] = {
> >  	{
> >  		.algo = RTE_COMP_ALGO_DEFLATE,
> > -		.comp_feature_flags =
> 	RTE_COMP_FF_SHAREABLE_PRIV_XFORM,
> > +		.comp_feature_flags =
> 	RTE_COMP_FF_SHAREABLE_PRIV_XFORM |
> > +					RTE_COMP_FF_HUFFMAN_FIXED |
> > +					RTE_COMP_FF_HUFFMAN_DYNAMIC,
> >  		.window_size = {
> >  			.min = 15,
> >  			.max = 15,
> > diff --git a/lib/librte_compressdev/rte_comp.c
> > b/lib/librte_compressdev/rte_comp.c
> > index ea7692ae7..9711a86c8 100644
> > --- a/lib/librte_compressdev/rte_comp.c
> > +++ b/lib/librte_compressdev/rte_comp.c
> > @@ -36,6 +36,10 @@ rte_comp_get_feature_name(uint64_t flag)
> >  		return "SHA2_SHA256_HASH";
> >  	case RTE_COMP_FF_SHAREABLE_PRIV_XFORM:
> >  		return "SHAREABLE_PRIV_XFORM";
> > +	case RTE_COMP_FF_HUFFMAN_FIXED:
> > +		return "HUFFMAN_FIXED";
> > +	case RTE_COMP_FF_HUFFMAN_DYNAMIC:
> > +		return "HUFFMAN_DYNAMIC";
> [Fiona] Thanks for adding this.
> Just in case any other algos are added in future which also use Huffman
> encoding I'd suggest renaming to include DEFLATE, e.g.
> RTE_COMP_FF_DFL_HUFFMAN_FIXED/DYNAMIC

Since these flags are set per algorithm (in capabilities),
do you think it is needed to specify DEFLATE?

> 
> 
> >  	default:
> >  		return NULL;
> >  	}
> > diff --git a/lib/librte_compressdev/rte_comp.h
> > b/lib/librte_compressdev/rte_comp.h
> > index 3ce6a80e1..c6a542c0c 100644
> > --- a/lib/librte_compressdev/rte_comp.h
> > +++ b/lib/librte_compressdev/rte_comp.h
> > @@ -62,6 +62,10 @@ extern "C" {
> >   * to create as many priv_xforms as it expects to have stateless
> >   * operations in-flight.
> >   */
> > +#define RTE_COMP_FF_HUFFMAN_FIXED		(1ULL << 13)
> > +/**< Fixed huffman enconding is supported */
> > +#define RTE_COMP_FF_HUFFMAN_DYNAMIC		(1ULL << 14)
> > +/**< Dynamic huffman enconding is supported */
> [Fiona] typo encoding.

Will fix.



More information about the dev mailing list