Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Feb 2018 12:25:32 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r329568 - projects/bsd_rdma_4_9_stable_11/contrib/ofed/include
Message-ID:  <201802191225.w1JCPWkR058339@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: hselasky
Date: Mon Feb 19 12:25:32 2018
New Revision: 329568
URL: https://svnweb.freebsd.org/changeset/base/329568

Log:
  MFC r326765:
  ofed: Define barriers for mips and arm.
  
  I used the strongest barriers available on the architectures, so if
  the future analysis show that it is excessive, the barriers could be
  relaxed. Still, it is unlikely that it is meaningful to run IB on 32bit
  ARM or current MIPS machines, so the change is to make WITH_OFED to pass
  tinderbox.
  
  Sponsored by:	Mellanox Technologies
  Reviewed by:	hselasky
  Differential revision:	https://reviews.freebsd.org/D13329

Modified:
  projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/udma_barrier.h
Directory Properties:
  projects/bsd_rdma_4_9_stable_11/   (props changed)

Modified: projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/udma_barrier.h
==============================================================================
--- projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/udma_barrier.h	Mon Feb 19 12:24:28 2018	(r329567)
+++ projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/udma_barrier.h	Mon Feb 19 12:25:32 2018	(r329568)
@@ -96,6 +96,14 @@
 #define udma_to_device_barrier() asm volatile("dsb st" ::: "memory");
 #elif defined(__sparc__) || defined(__s390x__)
 #define udma_to_device_barrier() asm volatile("" ::: "memory")
+#elif defined(__mips__)
+#include <sys/types.h>
+#include <machine/atomic.h>
+#define udma_to_device_barrier() mips_sync()
+#elif defined(__arm__)
+#include <sys/types.h>
+#include <machine/atomic.h>
+#define udma_to_device_barrier() dmb()
 #else
 #error No architecture specific memory barrier defines found!
 #endif
@@ -128,6 +136,10 @@
 #define udma_from_device_barrier() asm volatile("dsb ld" ::: "memory");
 #elif defined(__sparc__) || defined(__s390x__)
 #define udma_from_device_barrier() asm volatile("" ::: "memory")
+#elif defined(__mips__)
+#define udma_from_device_barrier() mips_sync()
+#elif defined(__arm__)
+#define udma_from_device_barrier() dmb()
 #else
 #error No architecture specific memory barrier defines found!
 #endif
@@ -192,6 +204,10 @@
 #define mmio_flush_writes() asm volatile("dsb st" ::: "memory");
 #elif defined(__sparc__) || defined(__s390x__)
 #define mmio_flush_writes() asm volatile("" ::: "memory")
+#elif defined(__mips__)
+#define mmio_flush_writes() mips_sync()
+#elif defined(__arm__)
+#define mmio_flush_writes() dmb()
 #else
 #error No architecture specific memory barrier defines found!
 #endif



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201802191225.w1JCPWkR058339>