[dpdk-dev] [PATCH] compress/isal: fix getting information about CPU

Daly, Lee lee.daly at intel.com
Wed Mar 27 16:01:26 CET 2019


Hi Tomasz,

	This patch makes sense to check does the CPU have the capability of certain instructions before
Adding it to the dev_info flags. I think one more addition should be made in isal_compress_pmd.c 
When checking what compression level should be used , decided by the AVX instructions available, it previously used the 
Rte_cpu_get_flag_enabled() function, however, I don’t believe that is needed any more since it will now be checked beforehand, it would be doing twice the work.
When the driver now needs to decide the compression level it should now just check the feature_flags set below. Perhaps a V2 could be sent with this addition.
Regards,
Lee.

> > This patch adds query about CPU features
> >
> > Fixes: 53a9baa98c36 ("compress/isal: add basic PMD ops")
> > Cc: stable at dpdk.org
> >
> > Signed-off-by: Tomasz Cel <tomaszx.cel at intel.com>
> > ---
> >   drivers/compress/isal/isal_compress_pmd_ops.c | 16 ++++++++++++----
> >   1 file changed, 12 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/compress/isal/isal_compress_pmd_ops.c
> b/drivers/compress/isal/isal_compress_pmd_ops.c
> > index 7b91849..fe99959 100644
> > --- a/drivers/compress/isal/isal_compress_pmd_ops.c
> > +++ b/drivers/compress/isal/isal_compress_pmd_ops.c
> > @@ -135,10 +135,18 @@ isal_comp_pmd_info_get(struct
> rte_compressdev *dev __rte_unused,
> >   {
> >   	if (dev_info != NULL) {
> >   		dev_info->capabilities = isal_pmd_capabilities;
> > -		dev_info->feature_flags = RTE_COMPDEV_FF_CPU_AVX512 |
> > -				RTE_COMPDEV_FF_CPU_AVX2 |
> > -				RTE_COMPDEV_FF_CPU_AVX |
> > -				RTE_COMPDEV_FF_CPU_SSE;
> > +
> > +		/* Check CPU for supported vector instruction and set
> > +		 * feature_flags
> > +		 */
> > +		if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F))
> > +			dev_info->feature_flags |=
> RTE_COMPDEV_FF_CPU_AVX512;
> > +		else if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX2))
> > +			dev_info->feature_flags |=
> RTE_COMPDEV_FF_CPU_AVX2;
> > +		else if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX))
> > +			dev_info->feature_flags |=
> RTE_COMPDEV_FF_CPU_AVX;
> > +		else
> > +			dev_info->feature_flags |=
> RTE_COMPDEV_FF_CPU_SSE;
> >   	}
> >   }
> >



More information about the dev mailing list