sched: fix build without SSE4
Irrelevant of the target, the preprocessor #ifdef SSE2 for the grinder_pipe_exists function is inadequate since the __mm_testz_si128 function requires SSE4.1, PTEST instruction described in https://en.wikipedia.org/wiki/SSE4#SSE4.1 (I do no have better spec reference). I have bumped the preprocessor #ifdef to require SSE4. The Atom N2600 does not have SSE4, http://ark.intel.com/products/58916, and so I had trouble building rte_sched with optimized version of grinder_pipe_exists, with following: error: inlining failed in call to always_inline _mm_testz_si128’: target specific option mismatch GCC 4.9 correctly identifies my target as not having SSE4, and with provided patch builds the non-optimized version of grinder_pipe_exists. Signed-off-by: Mike Sowka <msowka@gmail.com>
This commit is contained in:
parent
e3787501d2
commit
90f455f3d3
@ -55,8 +55,8 @@
|
||||
#ifdef RTE_SCHED_VECTOR
|
||||
#include <rte_vect.h>
|
||||
|
||||
#if defined(__SSE2__)
|
||||
#define SCHED_VECTOR_SSE2
|
||||
#if defined(__SSE4__)
|
||||
#define SCHED_VECTOR_SSE4
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@ -1672,7 +1672,7 @@ grinder_schedule(struct rte_sched_port *port, uint32_t pos)
|
||||
return 1;
|
||||
}
|
||||
|
||||
#ifdef SCHED_VECTOR_SSE2
|
||||
#ifdef SCHED_VECTOR_SSE4
|
||||
|
||||
static inline int
|
||||
grinder_pipe_exists(struct rte_sched_port *port, uint32_t base_pipe)
|
||||
|
Loading…
Reference in New Issue
Block a user