* [dpdk-dev] [PATCH] fix build on Atom without SSE4 support
@ 2015-12-05 5:00 Mike Sowka
2015-12-05 5:00 ` [dpdk-dev] [PATCH] sched: " Mike Sowka
0 siblings, 1 reply; 5+ messages in thread
From: Mike Sowka @ 2015-12-05 5:00 UTC (permalink / raw)
To: dev; +Cc: Mike Sowka
I'm buiding dpdk on an N2600 Cedarview Atom, using gcc 4.9.2
on Fedora 21. At least one instruction in the optimized version of
rte_sched::grinder_pipe_exists (_mm_testz_si128) requires SSE4.
Mike Sowka (1):
sched: fix build on Atom without SSE4 support
lib/librte_sched/rte_sched.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--
2.1.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [dpdk-dev] [PATCH] sched: fix build on Atom without SSE4 support
2015-12-05 5:00 [dpdk-dev] [PATCH] fix build on Atom without SSE4 support Mike Sowka
@ 2015-12-05 5:00 ` Mike Sowka
2015-12-05 21:07 ` Thomas Monjalon
0 siblings, 1 reply; 5+ messages in thread
From: Mike Sowka @ 2015-12-05 5:00 UTC (permalink / raw)
To: dev; +Cc: Mike Sowka
---
lib/librte_sched/rte_sched.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/librte_sched/rte_sched.c b/lib/librte_sched/rte_sched.c
index 21ebf25..6f92aa6 100644
--- a/lib/librte_sched/rte_sched.c
+++ b/lib/librte_sched/rte_sched.c
@@ -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)
--
2.1.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [PATCH] sched: fix build on Atom without SSE4 support
2015-12-05 5:00 ` [dpdk-dev] [PATCH] sched: " Mike Sowka
@ 2015-12-05 21:07 ` Thomas Monjalon
0 siblings, 0 replies; 5+ messages in thread
From: Thomas Monjalon @ 2015-12-05 21:07 UTC (permalink / raw)
To: Mike Sowka; +Cc: dev
2015-12-05 00:00, Mike Sowka:
> ---
> lib/librte_sched/rte_sched.c | 6 +++---
Please provide some explanations and Signed-off.
No cover letter is needed for one patch.
Guide of patch submission here:
http://dpdk.org/dev#send
Thanks
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [PATCH] sched: fix build on Atom without SSE4 support
2015-12-05 22:27 Mike Sowka
@ 2015-12-05 23:47 ` Thomas Monjalon
0 siblings, 0 replies; 5+ messages in thread
From: Thomas Monjalon @ 2015-12-05 23:47 UTC (permalink / raw)
To: Mike Sowka; +Cc: dev
2015-12-05 17:27, Mike Sowka:
> Thanks for the pointers Thomas. Here is a signed-off patch
> re-submission with some explanation, to the best of my experience.
Thanks, it is really well detailed.
It would have been perfect with -v2 --in-reply-to :)
> 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>
Applied, thanks
^ permalink raw reply [flat|nested] 5+ messages in thread
* [dpdk-dev] [PATCH] sched: fix build on Atom without SSE4 support
@ 2015-12-05 22:27 Mike Sowka
2015-12-05 23:47 ` Thomas Monjalon
0 siblings, 1 reply; 5+ messages in thread
From: Mike Sowka @ 2015-12-05 22:27 UTC (permalink / raw)
To: dev; +Cc: Mike Sowka
Thanks for the pointers Thomas. Here is a signed-off patch
re-submission with some explanation, to the best of my experience.
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>
---
lib/librte_sched/rte_sched.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/librte_sched/rte_sched.c b/lib/librte_sched/rte_sched.c
index 21ebf25..6f92aa6 100644
--- a/lib/librte_sched/rte_sched.c
+++ b/lib/librte_sched/rte_sched.c
@@ -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)
--
2.1.0
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-12-05 23:48 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-05 5:00 [dpdk-dev] [PATCH] fix build on Atom without SSE4 support Mike Sowka
2015-12-05 5:00 ` [dpdk-dev] [PATCH] sched: " Mike Sowka
2015-12-05 21:07 ` Thomas Monjalon
2015-12-05 22:27 Mike Sowka
2015-12-05 23:47 ` Thomas Monjalon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).