Port-alpha archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: can't reboot after running a 5.0 kernel



On Mon, Jan 31, 2011 at 16:04:59 -0500, Chuck Cranor wrote:

> I also did a survey of some of the ports in the tree, and it looks
> some port's cpu_setfunc() still call lwp_startup() while other ports
> have been modified (like the alpha) to not call it:
> 
> arch    cpu_setfunc calls       does it call lpw_startup?  when changed?
> ------- ----------------------  ----------------------------------------
> acorn26 lwp_trampoline          yes 
> alpha   setfunc_trampoline      no (vm_machdep.1.100, 2009/06/01)
> arm32   lwp_trampoline          yes
> hppa    setfunc_trampoline      no (vm_machdep.c 1.36, 2009/06/03)
> m68k    setfunc_trampoline      no (vm_machdep.c 1.28, 2009/05/30)
> mips    setfunc_trampoline      no (vm_machdep.c 1.123, 2009/05/30)
> powerpc setfunc_trampoline      no (vm_machdep.c 1.77, 2009/06/07)
> sh3     lwp_setfunc_trampoline  no (never called lpw_startup?)
> sparc   lwp_setfunc_trampoline  no (vm_machdep.c 1.100, 2009/05/29)
> sparc64 lwp_setfunc_trampoline  no (vm_machep.c 1.89, 2009/05/30)
> x86     lwp_trampoline          yes
> 
> the "no" ports are likely to have problems with compat_sa binaries,
> I think.
> 
> 
> The most interesting one is the sh3 (because it didn't get the change
> in 2009) and the commit comment from mrg on the sparc (because it
> is the earliest instance of this change --- 2009/05/29):
> 
> ----------------------------
> revision 1.100
> date: 2009/05/29 22:06:56;  author: mrg;  state: Exp;  lines: +11 -5
> fix up cpu_setfunc() as noted by uwe:
> 
> - don't call lwp_startup for cpu_setfunc() users
> - introduce lwp_setfunc_trampoline instead
> - no need to set the "new" lwp for setfunc
> ----------------------------
> 
> 
> But I couldn't find where mrg said that uwe@netbsd noted it.

Probably on ICB.

As far as I can tell, sh3 never called lwp_startup for cpu_setfunc()
users, as cvs tells me for src/sys/arch/sh3/sh3/locore_subr.S

revision 1.30.4.3
date: 2007/03/25 01:59:02;  author: uwe;  state: Exp;  lines: +47 -107
Adapt sh3 to yamt-idlelwp.

which introduced current code in its present form.  I don't remember
any details, I guess I was just doing what I was told.

My vague recollection is that my understanding at the time was that
lwp_startup was intended for "new" lwps (cpu_lwp_fork), but
lwp_setfunc_trampoline (cpu_setfunc) was intended for lwps that
already exist, to make them run some new code for an upcall.

I guess that was what I "noted" to mrg.

-uwe


Home | Main Index | Thread Index | Old Index