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: sta...@dpdk.org
> >
> > Signed-off-by: Tomasz Cel <tomaszx....@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;
> >     }
> >   }
> >

Reply via email to