Subject: Re: Ultra 10, anyone?
To: Andrey Petrov <petrov@netbsd.org>
From: Chuck Silvers <chuq@chuq.com>
List: port-sparc64
Date: 08/22/2002 21:42:12
--k1lZvvs/B4yU6o8G
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

hi,

you're absolutely right, some of those cache flushes shouldn't
have been removed.  could you try out the attached version of
this change?  that's the one I'll commit.

-Chuck


On Thu, Aug 22, 2002 at 10:23:16AM -0700, Andrey Petrov wrote:
> On Thu, Aug 22, 2002 at 11:47:53AM +0200, Hubert Feyrer wrote:
> >
> > Using the latest snapshot from releng.netbsd.org, I get lots of "signal
> > 11"s during compilation. I'v replaced the machine's RAM (4*256 -> 4*64),
> > but that didn't make any differences.
> > 
> 
> I'm not sure if that hme or not but the following patch fixed
> 'signal 11' during NFS build for me. I have some theory about
> aliased shared pages, but it's just guess with no prove at this 
> point.
> 
> 	Andrey

--k1lZvvs/B4yU6o8G
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="diff.sparc64-dcache"

Index: arch/sparc64/sparc64/pmap.c
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/sparc64/sparc64/pmap.c,v
retrieving revision 1.125
diff -u -r1.125 pmap.c
--- arch/sparc64/sparc64/pmap.c	2002/08/12 12:04:31	1.125
+++ arch/sparc64/sparc64/pmap.c	2002/08/23 04:40:49
@@ -2807,6 +2807,7 @@
 			simple_unlock(&pv->pv_pmap->pm_lock);
 		}
 	splx(s);
+	dcache_flush_page(pa);
 	pv_check();
 #ifdef DEBUG
 	if (pmap_is_modified(pg)) {
@@ -2906,6 +2907,7 @@
 		}
 	}
 	splx(s);
+	dcache_flush_page(pa);
 	pv_check();
 #ifdef DEBUG
 	if (pmap_is_referenced(pg)) {
@@ -3272,6 +3274,7 @@
 		}
 		splx(s);
 	}
+	dcache_flush_page(pa);
 	/* We should really only flush the pages we demapped. */
 	pv_check();
 }

--k1lZvvs/B4yU6o8G--