Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Jul 2011 14:39:23 +0000 (UTC)
From:      Marius Strobl <marius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r224312 - stable/8/sys/sparc64/sparc64
Message-ID:  <201107251439.p6PEdNIV060578@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marius
Date: Mon Jul 25 14:39:22 2011
New Revision: 224312
URL: http://svn.freebsd.org/changeset/base/224312

Log:
  MFC: r220931
  
  - Use the streaming cache unless BUS_DMA_COHERENT is specified. Since
    r220375 (MFC'ed to stable/8 in r221191) all drivers enabled in the
    sparc64 GENERIC should be either correctly using bus_dmamap_sync(9)
    calls or supply BUS_DMA_COHERENT when appropriate or as a workaround
    for missing bus_dmamap_sync(9) calls (sound(4) drivers and partially
    sym(4)). In at least some configurations taking advantage of the
    streaming cache results in a modest performance improvement.
  - Remove the memory barrier for BUS_DMASYNC_PREREAD which as the
    comment already suggested is bogus.
  - Add my copyright for having implemented several things like support
    for the Fire and Oberon IOMMUs, taking over PROM IOMMU mappings etc.

Modified:
  stable/8/sys/sparc64/sparc64/iommu.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/geom/label/   (props changed)

Modified: stable/8/sys/sparc64/sparc64/iommu.c
==============================================================================
--- stable/8/sys/sparc64/sparc64/iommu.c	Mon Jul 25 14:34:30 2011	(r224311)
+++ stable/8/sys/sparc64/sparc64/iommu.c	Mon Jul 25 14:39:22 2011	(r224312)
@@ -28,6 +28,7 @@
 /*-
  * Copyright (c) 1999-2002 Eduardo Horvath
  * Copyright (c) 2001-2003 Thomas Moestl
+ * Copyright (c) 2007, 2009 Marius Strobl <marius@FreeBSD.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -77,7 +78,6 @@ __FBSDID("$FreeBSD$");
  * - When running out of DVMA space, return EINPROGRESS in the non-
  *   BUS_DMA_NOWAIT case and delay the callback until sufficient space
  *   becomes available.
- * - Use the streaming cache unless BUS_DMA_COHERENT is specified.
  */
 
 #include "opt_iommu.h"
@@ -564,17 +564,8 @@ static __inline int
 iommu_use_streaming(struct iommu_state *is, bus_dmamap_t map, bus_size_t size)
 {
 
-	/*
-	 * This cannot be enabled yet, as many driver are still missing
-	 * bus_dmamap_sync() calls.  As soon as there is a BUS_DMA_STREAMING
-	 * flag, this should be reenabled conditionally on it.
-	 */
-#ifdef notyet
 	return (size >= IOMMU_STREAM_THRESH && IOMMU_HAS_SB(is) &&
 	    (map->dm_flags & DMF_COHERENT) == 0);
-#else
-	return (0);
-#endif
 }
 
 /*
@@ -1182,9 +1173,6 @@ iommu_dvmamap_sync(bus_dma_tag_t dt, bus
 
 	if ((map->dm_flags & DMF_LOADED) == 0)
 		return;
-	/* XXX This is probably bogus. */
-	if ((op & BUS_DMASYNC_PREREAD) != 0)
-		membar(Sync);
 	if ((map->dm_flags & DMF_STREAMED) != 0 &&
 	    ((op & BUS_DMASYNC_POSTREAD) != 0 ||
 	    (op & BUS_DMASYNC_PREWRITE) != 0)) {



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