GENERIC.MP hangs

KIYOHARA Takashi <[email protected]> Tue, 02 Apr 2013 00:27:53 +0900 (JST)
Newsgroups gmane.os.netbsd.ports.hp700
Message-ID <[email protected]>
Hi! Nick,


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().

Please see other archs:
  x86/x86/cpu.c
  powerpc/powerpc/locore_subr.S
  arch/arm/cortex/a9_mpsubr.S

x86/x86/cpu.c:cpu_hatch() ---
void
cpu_hatch(void *v)
{
	:

	aprint_debug_dev(ci->ci_dev, "running\n");

	idle_loop(NULL);
	KASSERT(false);
}
--- x86/x86/cpu.c:cpu_hatch()

powerpc/powerpc/locore_subr.S ---
ENTRY(cpu_spinup_trampoline)
	:

	bl	_C_LABEL(cpu_hatch)
	mr	%r1,%r3
	b	_C_LABEL(idle_loop)

ENTRY(cpu_spinstart)
	:

	bla	_C_LABEL(cpu_hatch)
	mr	%r1,%r3	/* move the return from cpu_hatch to the stackpointer*/
	b	_C_LABEL(idle_loop)
--- powerpc/powerpc/locore_subr.S

Please fix. :)

However,
Oops,  hangs again for another reason after resolved this problem...  X-<
probably I will report again in several months.

Thanks,
--
kiyohara