Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Dec 2020 19:48:20 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Michal Meloun <mmel@freebsd.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r368279 - head/sys/dev/nvme
Message-ID:  <X8fTZLNuBAt3vzUp@kib.kiev.ua>
In-Reply-To: <202012021654.0B2GsOP8000763@repo.freebsd.org>
References:  <202012021654.0B2GsOP8000763@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Dec 02, 2020 at 04:54:24PM +0000, Michal Meloun wrote:
> Author: mmel
> Date: Wed Dec  2 16:54:24 2020
> New Revision: 368279
> URL: https://svnweb.freebsd.org/changeset/base/368279
> 
> Log:
>   NVME: Multiple busdma related fixes.
...

>   - in nvme_qpair_submit_tracker(), don't do explicit wmb() also for arm
>     and arm64. Bus_dmamap_sync() on these architectures is sufficient to ensure
>     that all CPU stores are visible to external (including DMA) observers.
> @@ -982,7 +982,7 @@ nvme_qpair_submit_tracker(struct nvme_qpair *qpair, st
>  
>  	bus_dmamap_sync(qpair->dma_tag, qpair->queuemem_map,
>  	    BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
> -#ifndef __powerpc__
> +#if !defined( __powerpc__) && !defined( __aarch64__)  && !defined( __arm__)
>  	/*
>  	 * powerpc's bus_dmamap_sync() already includes a heavyweight sync, but
>  	 * no other archs do.
Does anybody have any evidence that the wmb() below is useful ?
For instance, on x86, does nvme driver use any write-combining mappings ?



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