Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/sparc64/doc sun4v: note what causes the kernel to c...



details:   https://anonhg.NetBSD.org/src/rev/e955f926c0c9
branches:  trunk
changeset: 446765:e955f926c0c9
user:      palle <palle%NetBSD.org@localhost>
date:      Mon Dec 17 20:13:46 2018 +0000

description:
sun4v: note what causes the kernel to crash

diffstat:

 sys/arch/sparc64/doc/TODO |  10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diffs (24 lines):

diff -r 62314f1844b4 -r e955f926c0c9 sys/arch/sparc64/doc/TODO
--- a/sys/arch/sparc64/doc/TODO Mon Dec 17 20:10:51 2018 +0000
+++ b/sys/arch/sparc64/doc/TODO Mon Dec 17 20:13:46 2018 +0000
@@ -1,4 +1,4 @@
- /* $NetBSD: TODO,v 1.27 2018/10/05 19:53:47 palle Exp $ */
+ /* $NetBSD: TODO,v 1.28 2018/12/17 20:13:46 palle Exp $ */
 
 Things to be done:
 
@@ -12,7 +12,13 @@
 
 sun4v:
  - current status: The kernel boots and starts the init process (pid 1) 
-   which spawns /sbin/sh (pid 2). This is forked as a new /sbin/sh (pid 3) which crashes, probably due to MMU DPROT issues.
+   which spawns /sbin/sh (pid 2). This is forked as a new /sbin/sh (pid 3)
+   which crashes, probably due to MMU DPROT issues.
+   Looks like the user process tries to write to the stack as part of a save
+   instruction since cansave is zero. This causes a DMMU PROT trap (0x6c) which
+   calls sun4v_tl0_dtsb_prot which calls sun4v_datatrap which calls TRAP_SETUP().
+   This macro has code that does a save instruction, again to the user stack,
+   which again causes a MMU DPROT trap...
 - 64-bit kernel support
 - 32-bit kernel support
 - libkvm



Home | Main Index | Thread Index | Old Index