svn commit: r368279 - head/sys/dev/nvme

Konstantin Belousov kostikbel at gmail.com
Wed Dec 2 17:48:28 UTC 2020


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 ?


More information about the svn-src-all mailing list