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