* [dpdk-dev] [PATCH] ixgbe: Reduce compilation to only require sse3 intrinsics
@ 2014-08-01 16:48 Neil Horman
2014-08-01 17:39 ` Richardson, Bruce
0 siblings, 1 reply; 4+ messages in thread
From: Neil Horman @ 2014-08-01 16:48 UTC (permalink / raw)
To: dev
ixgbe was failing to build in the default configuration because it required
sse4.2 intrinsics, and the default config doesn't support more than sse3.
Modify the pmd so that only sse3 intrinsics are pulled in and used.
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
CC: "Konstantin Ananyev" <konstantin.ananyev@intel.com>
CC: Bruce Richardson <bruce.richardson@intel.com>
CC: Thomas Monjalon <thomas.monjalon@6wind.com>
---
lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
index 09e19a3..fe39ca2 100644
--- a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
+++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
@@ -38,7 +38,7 @@
#include "ixgbe_ethdev.h"
#include "ixgbe_rxtx.h"
-#include <nmmintrin.h>
+#include <tmmintrin.h>
#ifndef __INTEL_COMPILER
#pragma GCC diagnostic ignored "-Wcast-qual"
@@ -338,7 +338,7 @@ ixgbe_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
pkt_mb1);
/* C.4 calc avaialbe number of desc */
- var = _mm_popcnt_u64(_mm_cvtsi128_si64(staterr));
+ var = __builtin_popcountll(_mm_cvtsi128_si64(staterr));
nb_pkts_recd += var;
if (likely(var != RTE_IXGBE_DESCS_PER_LOOP))
break;
--
1.8.3.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [dpdk-dev] [PATCH] ixgbe: Reduce compilation to only require sse3 intrinsics
2014-08-01 16:48 [dpdk-dev] [PATCH] ixgbe: Reduce compilation to only require sse3 intrinsics Neil Horman
@ 2014-08-01 17:39 ` Richardson, Bruce
2014-08-12 23:55 ` Thomas Monjalon
0 siblings, 1 reply; 4+ messages in thread
From: Richardson, Bruce @ 2014-08-01 17:39 UTC (permalink / raw)
To: Neil Horman, dev
> -----Original Message-----
> From: Neil Horman [mailto:nhorman@tuxdriver.com]
> Sent: Friday, August 01, 2014 9:49 AM
> To: dev@dpdk.org
> Cc: Neil Horman; Ananyev, Konstantin; Richardson, Bruce; Thomas Monjalon
> Subject: [PATCH] ixgbe: Reduce compilation to only require sse3 intrinsics
>
> ixgbe was failing to build in the default configuration because it required
> sse4.2 intrinsics, and the default config doesn't support more than sse3.
> Modify the pmd so that only sse3 intrinsics are pulled in and used.
>
> Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> CC: "Konstantin Ananyev" <konstantin.ananyev@intel.com>
> CC: Bruce Richardson <bruce.richardson@intel.com>
> CC: Thomas Monjalon <thomas.monjalon@6wind.com>
> ---
> lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
> b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
> index 09e19a3..fe39ca2 100644
> --- a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
> +++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
> @@ -38,7 +38,7 @@
> #include "ixgbe_ethdev.h"
> #include "ixgbe_rxtx.h"
>
> -#include <nmmintrin.h>
> +#include <tmmintrin.h>
>
> #ifndef __INTEL_COMPILER
> #pragma GCC diagnostic ignored "-Wcast-qual"
> @@ -338,7 +338,7 @@ ixgbe_recv_pkts_vec(void *rx_queue, struct rte_mbuf
> **rx_pkts,
> pkt_mb1);
>
> /* C.4 calc avaialbe number of desc */
> - var = _mm_popcnt_u64(_mm_cvtsi128_si64(staterr));
> + var = __builtin_popcountll(_mm_cvtsi128_si64(staterr));
> nb_pkts_recd += var;
> if (likely(var != RTE_IXGBE_DESCS_PER_LOOP))
> break;
> --
> 1.8.3.1
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [dpdk-dev] [PATCH] ixgbe: Reduce compilation to only require sse3 intrinsics
2014-08-01 17:39 ` Richardson, Bruce
@ 2014-08-12 23:55 ` Thomas Monjalon
2014-08-13 10:11 ` Neil Horman
0 siblings, 1 reply; 4+ messages in thread
From: Thomas Monjalon @ 2014-08-12 23:55 UTC (permalink / raw)
To: Richardson, Bruce, Neil Horman; +Cc: dev
> > ixgbe was failing to build in the default configuration because it required
> > sse4.2 intrinsics, and the default config doesn't support more than sse3.
> > Modify the pmd so that only sse3 intrinsics are pulled in and used.
> >
> > Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> > CC: "Konstantin Ananyev" <konstantin.ananyev@intel.com>
> > CC: Bruce Richardson <bruce.richardson@intel.com>
> > CC: Thomas Monjalon <thomas.monjalon@6wind.com>
>
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Applied for version 1.7.1.
Now, ixgbe_rxtx_vec.c should be usable on all x86_64 CPU,
or am I forgetting something?
Thanks
--
Thomas
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [dpdk-dev] [PATCH] ixgbe: Reduce compilation to only require sse3 intrinsics
2014-08-12 23:55 ` Thomas Monjalon
@ 2014-08-13 10:11 ` Neil Horman
0 siblings, 0 replies; 4+ messages in thread
From: Neil Horman @ 2014-08-13 10:11 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev
On Wed, Aug 13, 2014 at 01:55:45AM +0200, Thomas Monjalon wrote:
> > > ixgbe was failing to build in the default configuration because it required
> > > sse4.2 intrinsics, and the default config doesn't support more than sse3.
> > > Modify the pmd so that only sse3 intrinsics are pulled in and used.
> > >
> > > Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> > > CC: "Konstantin Ananyev" <konstantin.ananyev@intel.com>
> > > CC: Bruce Richardson <bruce.richardson@intel.com>
> > > CC: Thomas Monjalon <thomas.monjalon@6wind.com>
> >
> > Acked-by: Bruce Richardson <bruce.richardson@intel.com>
>
> Applied for version 1.7.1.
>
> Now, ixgbe_rxtx_vec.c should be usable on all x86_64 CPU,
> or am I forgetting something?
>
Nope, this will do it.
All thats left now is to settle on the approach for the ACL library
Thanks
Neil
> Thanks
> --
> Thomas
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-08-13 10:08 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-01 16:48 [dpdk-dev] [PATCH] ixgbe: Reduce compilation to only require sse3 intrinsics Neil Horman
2014-08-01 17:39 ` Richardson, Bruce
2014-08-12 23:55 ` Thomas Monjalon
2014-08-13 10:11 ` Neil Horman
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).