Subject: re: Ultra 1 hangs almost solidly after some time
To: Robert Swindells <rjs@fdy2.demon.co.uk>
From: matthew green <mrg@eterna.com.au>
List: port-sparc64
Date: 10/17/2006 03:54:13
hi folks.


would those who are having weird hangs or crashes please try the
following patch and let me know how it goes?

thanks.


.mrg.


Index: pmap.c
===================================================================
RCS file: /cvsroot/src/sys/arch/sparc64/sparc64/pmap.c,v
retrieving revision 1.177
diff -p -r1.177 pmap.c
*** pmap.c	15 Oct 2006 21:07:45 -0000	1.177
--- pmap.c	16 Oct 2006 17:48:29 -0000
*************** pmap_bootstrap(u_long kernelstart, u_lon
*** 1100,1107 ****
  		cpus->ci_spinup = main; /* Call main when we're running. */
  		cpus->ci_paddr = cpu0paddr;
  		cpus->ci_idle_u = (struct pcb *)(CPUINFO_VA + 2 * PAGE_SIZE);
! 		cpus->ci_cpcb = cpus->ci_idle_u;
! 		proc0paddr = (struct pcb *)cpus->ci_idle_u;
  		cpus->ci_initstack = (void *)((vaddr_t)cpus->ci_idle_u + 2 * PAGE_SIZE);
  				/* (void *)u0[1]; */
  		cpus->ci_eintstack = (void *)EINTSTACK;
--- 1100,1107 ----
  		cpus->ci_spinup = main; /* Call main when we're running. */
  		cpus->ci_paddr = cpu0paddr;
  		cpus->ci_idle_u = (struct pcb *)(CPUINFO_VA + 2 * PAGE_SIZE);
! 		cpus->ci_cpcb = (struct pcb *)u0[0];
! 		proc0paddr = cpus->ci_cpcb;
  		cpus->ci_initstack = (void *)((vaddr_t)cpus->ci_idle_u + 2 * PAGE_SIZE);
  				/* (void *)u0[1]; */
  		cpus->ci_eintstack = (void *)EINTSTACK;