Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Apr 2014 20:26:15 +0000 (UTC)
From:      Ian Lepore <ian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r265025 - head/sys/arm/arm
Message-ID:  <201404272026.s3RKQFjx027778@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ian
Date: Sun Apr 27 20:26:15 2014
New Revision: 265025
URL: http://svnweb.freebsd.org/changeset/base/265025

Log:
  Explain why wbinv_all is SMP-safe in this case, and add a missing l2 cache
  flush.  (Either it was missing here, or it isn't needed in the minidump
  case.  Adding it here seems like the safer path to consistancy.)

Modified:
  head/sys/arm/arm/dump_machdep.c

Modified: head/sys/arm/arm/dump_machdep.c
==============================================================================
--- head/sys/arm/arm/dump_machdep.c	Sun Apr 27 20:16:51 2014	(r265024)
+++ head/sys/arm/arm/dump_machdep.c	Sun Apr 27 20:26:15 2014	(r265025)
@@ -174,8 +174,14 @@ cb_dumpdata(struct md_pa *mdp, int seqnr
 	printf("  chunk %d: %dMB (%d pages)", seqnr, pgs * PAGE_SIZE / (
 	    1024*1024), pgs);
 
-	/* Make sure we write coherent datas. */
+	/*
+	 * Make sure we write coherent data.  Note that in the SMP case this
+	 * only operates on the L1 cache of the current CPU, but all other CPUs
+	 * have already been stopped, and their flush/invalidate was done as
+	 * part of stopping.
+	 */
 	cpu_idcache_wbinv_all();
+	cpu_l2cache_wbinv_all();
 #ifdef __XSCALE__
 	xscale_cache_clean_minidata();
 #endif



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