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.)
This commit is contained in:
Ian Lepore 2014-04-27 20:26:15 +00:00
parent fa046341af
commit f62cbe0e49
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=265025

View File

@ -174,8 +174,14 @@ cb_dumpdata(struct md_pa *mdp, int seqnr, void *arg)
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