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;