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: [email protected]
> >
> > Signed-off-by: Tomasz Cel <[email protected]>
> > ---
> > 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;
> > }
> > }
> >