Re: GENERIC.MP hangs
KIYOHARA Takashi <[email protected]> Sat, 06 Apr 2013 19:14:45 +0900 (JST)
| Newsgroups | gmane.os.netbsd.ports.hp700 |
|---|---|
| Message-ID | <[email protected]> |
Hi! From: Nick Hudson <[email protected]> Date: Wed, 03 Apr 2013 15:21:11 +0000 > On 04/01/13 15:27, KIYOHARA Takashi wrote: > > GENERIC.MP hangs in percpu_alloc(). cpu0 waits cpu1 into idle_loop(). > > However cpu1 doesn't go idle_loop() on hp700 in > > arch/hp700/dev/cpu.c:cpu_hatch(). > > [snip] > > > Please fix. :) > > > > However, > > Oops, hangs again for another reason after resolved this problem... X-< > > probably I will report again in several months. > > Do you have a patch you'd like reviewing? I try with this change. Index: cpu.c =================================================================== RCS file: /cvsroot/src/sys/arch/hp700/dev/cpu.c,v retrieving revision 1.30 diff -u -r1.30 cpu.c --- cpu.c 21 Feb 2013 15:16:02 -0000 1.30 +++ cpu.c 6 Apr 2013 09:56:49 -0000 @@ -38,6 +38,7 @@ #include <sys/device.h> #include <sys/atomic.h> #include <sys/reboot.h> +#include <sys/idle.h> #include <uvm/uvm.h> @@ -283,9 +284,8 @@ while (!start_secondary_cpu) ; - /* Spin for now */ - for (;;) - ; + idle_loop(NULL); + /* NOTREACHED */ } #endif But, I think more better to call idle_loop() in locore.S. This reason is our stack space more than free in cpu_hatch(). # I don't know PA-RISC assembler. X-< Maybe, it is more better? Index: locore.S =================================================================== RCS file: /cvsroot/src/sys/arch/hp700/hp700/locore.S,v retrieving revision 1.61 diff -u -r1.61 locore.S --- locore.S 23 May 2012 16:11:37 -0000 1.61 +++ locore.S 6 Apr 2013 10:05:12 -0000 @@ -523,6 +523,7 @@ * Okay, time to return to the land of C. */ b cpu_hatch + b idle_loop nop EXIT(hw_cpu_spinup_trampoline) > There's quite a lot of work needed in pmap and trap handlers for full MP > support. OK! I will try and report next month(?). Thanks, -- kiyohara