From: Megha Ajmera Date: Tue, 22 Feb 2022 12:57:42 +0000 (+0000) Subject: sched: remove vector functions X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=3cba7cedd279b00af890d42fa3dde167a4fe3fb7;p=dpdk.git sched: remove vector functions Remove RTE_SCHED_VECTOR flag from rte_config.h. This flag is no longer useful. Only scalar version is supported. Signed-off-by: Megha Ajmera Acked-by: Cristian Dumitrescu --- diff --git a/config/arm/meson.build b/config/arm/meson.build index 48b88a84f2..8aead74086 100644 --- a/config/arm/meson.build +++ b/config/arm/meson.build @@ -17,7 +17,6 @@ flags_common = [ # ['RTE_ARM64_MEMCPY_ALIGN_MASK', 0xF], # ['RTE_ARM64_MEMCPY_STRICT_ALIGN', false], - ['RTE_SCHED_VECTOR', false], ['RTE_ARM_USE_WFE', false], ['RTE_ARCH_ARM64', true], ['RTE_CACHE_LINE_SIZE', 128] diff --git a/config/rte_config.h b/config/rte_config.h index 91d96eeecb..7a7da2f4e5 100644 --- a/config/rte_config.h +++ b/config/rte_config.h @@ -93,7 +93,6 @@ #undef RTE_SCHED_COLLECT_STATS #undef RTE_SCHED_SUBPORT_TC_OV #define RTE_SCHED_PORT_N_GRINDERS 8 -#undef RTE_SCHED_VECTOR /* rte_graph defines */ #define RTE_GRAPH_BURST_SIZE 256 diff --git a/lib/sched/rte_sched.c b/lib/sched/rte_sched.c index e5c62e3d77..162fced252 100644 --- a/lib/sched/rte_sched.c +++ b/lib/sched/rte_sched.c @@ -23,17 +23,6 @@ #pragma warning(disable:2259) /* conversion may lose significant bits */ #endif -#ifdef RTE_SCHED_VECTOR -#include - -#ifdef RTE_ARCH_X86 -#define SCHED_VECTOR_SSE4 -#elif defined(__ARM_NEON) -#define SCHED_VECTOR_NEON -#endif - -#endif - #define RTE_SCHED_TB_RATE_CONFIG_ERR (1e-7) #define RTE_SCHED_WRR_SHIFT 3 #define RTE_SCHED_MAX_QUEUES_PER_TC RTE_SCHED_BE_QUEUES_PER_PIPE @@ -2544,47 +2533,6 @@ grinder_schedule(struct rte_sched_port *port, return 1; } -#ifdef SCHED_VECTOR_SSE4 - -static inline int -grinder_pipe_exists(struct rte_sched_subport *subport, uint32_t base_pipe) -{ - __m128i index = _mm_set1_epi32(base_pipe); - __m128i pipes = _mm_load_si128((__m128i *)subport->grinder_base_bmp_pos); - __m128i res = _mm_cmpeq_epi32(pipes, index); - - pipes = _mm_load_si128((__m128i *)(subport->grinder_base_bmp_pos + 4)); - pipes = _mm_cmpeq_epi32(pipes, index); - res = _mm_or_si128(res, pipes); - - if (_mm_testz_si128(res, res)) - return 0; - - return 1; -} - -#elif defined(SCHED_VECTOR_NEON) - -static inline int -grinder_pipe_exists(struct rte_sched_subport *subport, uint32_t base_pipe) -{ - uint32x4_t index, pipes; - uint32_t *pos = (uint32_t *)subport->grinder_base_bmp_pos; - - index = vmovq_n_u32(base_pipe); - pipes = vld1q_u32(pos); - if (!vminvq_u32(veorq_u32(pipes, index))) - return 1; - - pipes = vld1q_u32(pos + 4); - if (!vminvq_u32(veorq_u32(pipes, index))) - return 1; - - return 0; -} - -#else - static inline int grinder_pipe_exists(struct rte_sched_subport *subport, uint32_t base_pipe) { @@ -2598,8 +2546,6 @@ grinder_pipe_exists(struct rte_sched_subport *subport, uint32_t base_pipe) return 0; } -#endif /* RTE_SCHED_OPTIMIZATIONS */ - static inline void grinder_pcache_populate(struct rte_sched_subport *subport, uint32_t pos, uint32_t bmp_pos, uint64_t bmp_slab)