From owner-svn-src-head@freebsd.org Mon Dec 11 11:59:47 2017 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F3FFEE8F70F; Mon, 11 Dec 2017 11:59:46 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C0ABB26A4; Mon, 11 Dec 2017 11:59:46 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBBBxjRx017027; Mon, 11 Dec 2017 11:59:45 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBBBxjo2017026; Mon, 11 Dec 2017 11:59:45 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201712111159.vBBBxjo2017026@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 11 Dec 2017 11:59:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r326765 - head/contrib/ofed/include X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/contrib/ofed/include X-SVN-Commit-Revision: 326765 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Dec 2017 11:59:47 -0000 Author: kib Date: Mon Dec 11 11:59:45 2017 New Revision: 326765 URL: https://svnweb.freebsd.org/changeset/base/326765 Log: 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: head/contrib/ofed/include/udma_barrier.h Modified: head/contrib/ofed/include/udma_barrier.h ============================================================================== --- head/contrib/ofed/include/udma_barrier.h Mon Dec 11 11:57:46 2017 (r326764) +++ head/contrib/ofed/include/udma_barrier.h Mon Dec 11 11:59:45 2017 (r326765) @@ -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 +#include +#define udma_to_device_barrier() mips_sync() +#elif defined(__arm__) +#include +#include +#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