Scheduler Activations support
Jason Thorpe <[email protected]> Mon, 23 Jun 2003 06:20:25 -0700
| Newsgroups | gmane.os.netbsd.ports.pc532 |
|---|---|
| Message-ID | <[email protected]> |
Folks... I have checked in changes to adapt the pc532 port to the Scheduler Activations framework used to support pthreads. This means that the pc532 port compiles again. Simon Burge as successfully booted a kernel with these changes when compiled with a GCC 3.3 development compiler. The kernel goes single-user but fails to go multi-user when built with a GCC 3.4 development compiler. I'll try to investigate the compiler issues soon, but it probably won't be for a couple of weeks before I get a chance to do so. I would appreciate it if someone would take a look over the locore.s changes, in particular the cpu_switchto() function. Concerns I have about it: 1. I think I am fetching the function arguments correctly, but it has been a very long time since I did any ns32k assembly programming. Please make sure I didn't screw this up :-) 2. I'm concerned about the interaction with MRTD; cpu_switchto() takes 2 args vs cpu_switch()'s 1, but uses the same code return path as cpu_switch(). 3. I'm concerned about the lwp * in the switchframe. I don't see where this is used in cpu_switch(), and I'm worried that it represents the argument slot. This would mean it's incorrect for cpu_switchto(), which takes 2 lwp * arguments. Do we need to put 2 lwp *'s in switchframe, and pad it with NULL in the cpu_switch() case? In any case, cpu_switchto() is not used unless SAs are being used, so it should not affect normal system operation until the pthreads library is ported. Begin forwarded message: > From: Jason R Thorpe <[email protected]> > Date: Mon Jun 23, 2003 6:06:58 AM US/Pacific > To: [email protected] > Subject: CVS commit: src/sys/arch/pc532 > Reply-To: [email protected] > > > Module Name: src > Committed By: thorpej > Date: Mon Jun 23 13:06:58 UTC 2003 > > Modified Files: > src/sys/arch/pc532/fpu: ieee_handler.h > src/sys/arch/pc532/include: cpu.h frame.h pmap.h proc.h > src/sys/arch/pc532/pc532: compat_13_machdep.c genassym.cf locore.s > machdep.c pmap.c process_machdep.c sys_machdep.c trap.c > vm_machdep.c > > Log Message: > Adapt to the Scheduler Activations changes. > > Boots to multi-user when compiled with GCC 3.3 (20021123) (pre-3.3 > release), > boots to single-user but hangs going multi-user when compiled with 3.4 > (20030623). This is most likely a compiler problem. > > > To generate a diff of this commit: > cvs rdiff -r1.4 -r1.5 src/sys/arch/pc532/fpu/ieee_handler.h > cvs rdiff -r1.35 -r1.36 src/sys/arch/pc532/include/cpu.h > cvs rdiff -r1.8 -r1.9 src/sys/arch/pc532/include/frame.h > cvs rdiff -r1.37 -r1.38 src/sys/arch/pc532/include/pmap.h > cvs rdiff -r1.5 -r1.6 src/sys/arch/pc532/include/proc.h > cvs rdiff -r1.3 -r1.4 src/sys/arch/pc532/pc532/compat_13_machdep.c > cvs rdiff -r1.10 -r1.11 src/sys/arch/pc532/pc532/genassym.cf \ > src/sys/arch/pc532/pc532/sys_machdep.c > cvs rdiff -r1.69 -r1.70 src/sys/arch/pc532/pc532/locore.s > cvs rdiff -r1.140 -r1.141 src/sys/arch/pc532/pc532/machdep.c > cvs rdiff -r1.72 -r1.73 src/sys/arch/pc532/pc532/pmap.c > cvs rdiff -r1.11 -r1.12 src/sys/arch/pc532/pc532/process_machdep.c > cvs rdiff -r1.51 -r1.52 src/sys/arch/pc532/pc532/trap.c > cvs rdiff -r1.54 -r1.55 src/sys/arch/pc532/pc532/vm_machdep.c > > Please note that diffs are not public domain; they are subject to the > copyright notices on the relevant files. > -- Jason R. Thorpe <[email protected]>