]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/spdk/dpdk/drivers/compress/isal/isal_compress_pmd_ops.c
import 15.2.0 Octopus source
[ceph.git] / ceph / src / spdk / dpdk / drivers / compress / isal / isal_compress_pmd_ops.c
index 41cade87e4bc0a00a88b6ab20e6a0338942bcd17..fe9995992304d46b85bf6f5671580a62e1766c21 100644 (file)
@@ -17,7 +17,9 @@ static const struct rte_compressdev_capabilities isal_pmd_capabilities[] = {
                                        RTE_COMP_FF_OOP_LB_IN_SGL_OUT |
                                        RTE_COMP_FF_SHAREABLE_PRIV_XFORM |
                                        RTE_COMP_FF_HUFFMAN_FIXED |
-                                       RTE_COMP_FF_HUFFMAN_DYNAMIC,
+                                       RTE_COMP_FF_HUFFMAN_DYNAMIC |
+                                       RTE_COMP_FF_CRC32_CHECKSUM |
+                                       RTE_COMP_FF_ADLER32_CHECKSUM,
                .window_size = {
                        .min = 15,
                        .max = 15,
@@ -133,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;
        }
 }