Mon Dec 17 20:13:46 2018 UTC ()
sun4v: note what causes the kernel to crash


(palle)
diff -r1.27 -r1.28 src/sys/arch/sparc64/doc/TODO

cvs diff -r1.27 -r1.28 src/sys/arch/sparc64/doc/TODO (expand / switch to unified diff)

--- src/sys/arch/sparc64/doc/TODO 2018/10/05 19:53:47 1.27
+++ src/sys/arch/sparc64/doc/TODO 2018/12/17 20:13:46 1.28
@@ -1,28 +1,34 @@ @@ -1,28 +1,34 @@
1 /* $NetBSD: TODO,v 1.27 2018/10/05 19:53:47 palle Exp $ */ 1 /* $NetBSD: TODO,v 1.28 2018/12/17 20:13:46 palle Exp $ */
2 2
3Things to be done: 3Things to be done:
4 4
5common: 5common:
6- make %g6 point to curcpu 6- make %g6 point to curcpu
7- make %g7 point to curlwp 7- make %g7 point to curlwp
8- change run-time checks for cpu type to function pointers 8- change run-time checks for cpu type to function pointers
9 9
10sun4u: 10sun4u:
11- GENERIC.UP kernel hangs on v445 (missing interrupt?) 11- GENERIC.UP kernel hangs on v445 (missing interrupt?)
12 12
13sun4v: 13sun4v:
14 - current status: The kernel boots and starts the init process (pid 1)  14 - current status: The kernel boots and starts the init process (pid 1)
15 which spawns /sbin/sh (pid 2). This is forked as a new /sbin/sh (pid 3) which crashes, probably due to MMU DPROT issues. 15 which spawns /sbin/sh (pid 2). This is forked as a new /sbin/sh (pid 3)
 16 which crashes, probably due to MMU DPROT issues.
 17 Looks like the user process tries to write to the stack as part of a save
 18 instruction since cansave is zero. This causes a DMMU PROT trap (0x6c) which
 19 calls sun4v_tl0_dtsb_prot which calls sun4v_datatrap which calls TRAP_SETUP().
 20 This macro has code that does a save instruction, again to the user stack,
 21 which again causes a MMU DPROT trap...
16- 64-bit kernel support 22- 64-bit kernel support
17- 32-bit kernel support 23- 32-bit kernel support
18- libkvm 24- libkvm
19- ofwboot: tlb_init_sun4v() hardcodes number of slots to 64 25- ofwboot: tlb_init_sun4v() hardcodes number of slots to 64
20- locore.s: sun4v_datatrap missing implementation for trap level 1 26- locore.s: sun4v_datatrap missing implementation for trap level 1
21- check build without SUN4V defined 27- check build without SUN4V defined
22- replace relevant references to %ver with GET_MAXCWP 28- replace relevant references to %ver with GET_MAXCWP
23- pmap_mp_init(): sun4v missing handling 29- pmap_mp_init(): sun4v missing handling
24- replace constructs like "wrpr %g0, PSTATE_KERN, %pstate" with NORMAL_GLOBALS 30- replace constructs like "wrpr %g0, PSTATE_KERN, %pstate" with NORMAL_GLOBALS
25- replace constructs line "wrpr %g0, PSTATE_INTR, %pstate" with ALTERNATE_GOBALS 31- replace constructs line "wrpr %g0, PSTATE_INTR, %pstate" with ALTERNATE_GOBALS
26- sun4v tsb no need to lock... per cpu... anyway... 32- sun4v tsb no need to lock... per cpu... anyway...
27- ci_tsb_desc->td_ctxidx: -1 or 1? 33- ci_tsb_desc->td_ctxidx: -1 or 1?
28- MP support - currently bypassed in pmap_bootstrap() for sun4v 34- MP support - currently bypassed in pmap_bootstrap() for sun4v