DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] raw/ioat: fix issue with icc build
@ 2019-07-05 11:54 Bruce Richardson
  2019-07-05 12:30 ` Van Haaren, Harry
  2019-07-05 12:33 ` Burakov, Anatoly
  0 siblings, 2 replies; 4+ messages in thread
From: Bruce Richardson @ 2019-07-05 11:54 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

When using _mm_set_epi64() rather than _mm_set_epi64x() intrinsic, ICC
tries to use the x87 floating point registers, leading to warnings about
not properly clearing value when switching between x87 and SSE/AVX modes.

	error #13203: No EMMS instruction before call to function

Fix this by using the set64x() intrinsic.

Fixes: 0a92e63fc4cd ("raw/ioat: add local API to perform copies")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/raw/ioat/rte_ioat_rawdev.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/raw/ioat/rte_ioat_rawdev.h b/drivers/raw/ioat/rte_ioat_rawdev.h
index 3babb822d..7a89632e7 100644
--- a/drivers/raw/ioat/rte_ioat_rawdev.h
+++ b/drivers/raw/ioat/rte_ioat_rawdev.h
@@ -124,8 +124,7 @@ rte_ioat_enqueue_copy(int dev_id, phys_addr_t src, phys_addr_t dst,
 	desc->src_addr = src;
 	desc->dest_addr = dst;
 
-	ioat->hdls[write] = _mm_set_epi64((__m64)((uint64_t)dst_hdl),
-			(__m64)((uint64_t)src_hdl));
+	ioat->hdls[write] = _mm_set_epi64x((int64_t)dst_hdl, (int64_t)src_hdl);
 	rte_prefetch0(&ioat->desc_ring[ioat->next_write & mask]);
 
 	ioat->enqueued++;
-- 
2.21.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] [PATCH] raw/ioat: fix issue with icc build
  2019-07-05 11:54 [dpdk-dev] [PATCH] raw/ioat: fix issue with icc build Bruce Richardson
@ 2019-07-05 12:30 ` Van Haaren, Harry
  2019-07-05 12:33 ` Burakov, Anatoly
  1 sibling, 0 replies; 4+ messages in thread
From: Van Haaren, Harry @ 2019-07-05 12:30 UTC (permalink / raw)
  To: Richardson, Bruce, dev

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson
> Sent: Friday, July 5, 2019 12:54 PM
> To: dev@dpdk.org
> Cc: Richardson, Bruce <bruce.richardson@intel.com>
> Subject: [dpdk-dev] [PATCH] raw/ioat: fix issue with icc build
> 
> When using _mm_set_epi64() rather than _mm_set_epi64x() intrinsic, ICC
> tries to use the x87 floating point registers, leading to warnings about
> not properly clearing value when switching between x87 and SSE/AVX modes.
> 
> 	error #13203: No EMMS instruction before call to function
> 
> Fix this by using the set64x() intrinsic.
> 
> Fixes: 0a92e63fc4cd ("raw/ioat: add local API to perform copies")
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

New code compiles fine here with Gcc and Clang;

Acked-by: Harry van Haaren <harry.van.haaren@intel.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] [PATCH] raw/ioat: fix issue with icc build
  2019-07-05 11:54 [dpdk-dev] [PATCH] raw/ioat: fix issue with icc build Bruce Richardson
  2019-07-05 12:30 ` Van Haaren, Harry
@ 2019-07-05 12:33 ` Burakov, Anatoly
  2019-07-05 13:01   ` Thomas Monjalon
  1 sibling, 1 reply; 4+ messages in thread
From: Burakov, Anatoly @ 2019-07-05 12:33 UTC (permalink / raw)
  To: Bruce Richardson, dev

On 05-Jul-19 12:54 PM, Bruce Richardson wrote:
> When using _mm_set_epi64() rather than _mm_set_epi64x() intrinsic, ICC
> tries to use the x87 floating point registers, leading to warnings about
> not properly clearing value when switching between x87 and SSE/AVX modes.
> 
> 	error #13203: No EMMS instruction before call to function
> 
> Fix this by using the set64x() intrinsic.
> 
> Fixes: 0a92e63fc4cd ("raw/ioat: add local API to perform copies")
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---

Tested-by: Anatoly Burakov <anatoly.burakov@intel.com>

-- 
Thanks,
Anatoly

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] [PATCH] raw/ioat: fix issue with icc build
  2019-07-05 12:33 ` Burakov, Anatoly
@ 2019-07-05 13:01   ` Thomas Monjalon
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Monjalon @ 2019-07-05 13:01 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev, Burakov, Anatoly

05/07/2019 14:33, Burakov, Anatoly:
> On 05-Jul-19 12:54 PM, Bruce Richardson wrote:
> > When using _mm_set_epi64() rather than _mm_set_epi64x() intrinsic, ICC
> > tries to use the x87 floating point registers, leading to warnings about
> > not properly clearing value when switching between x87 and SSE/AVX modes.
> > 
> > 	error #13203: No EMMS instruction before call to function
> > 
> > Fix this by using the set64x() intrinsic.
> > 
> > Fixes: 0a92e63fc4cd ("raw/ioat: add local API to perform copies")
> > 
> > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> 
> Tested-by: Anatoly Burakov <anatoly.burakov@intel.com>

Applied, thanks



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-07-05 13:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-05 11:54 [dpdk-dev] [PATCH] raw/ioat: fix issue with icc build Bruce Richardson
2019-07-05 12:30 ` Van Haaren, Harry
2019-07-05 12:33 ` Burakov, Anatoly
2019-07-05 13:01   ` 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).