Port-sparc64 archive

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

Re: 10_BETA panic on Ultra 1



Hi,

> I decided to upgrade my Sun Ultra 1 from 9 to 10_BETA. However booting the 10_BETA kernel
> panics. No serial console on this machine, but I took a picture of the crash.
> https://twitter.com/herdware/status/1694444851733971305
> 
> Just recently upgraded my Ultra 60 with the same build from a few days ago.
> Is this an Ultrasparc I regression?
> 
> Please CC with reply

The problem on the U2 that Martin and I see is fixed with the patch (attached
and at):

  https://ftp.netbsd.org/pub/NetBSD/misc/jdc/sparc64/pil-adjust.patch

If you are able to test that, please, that would be great.  Alternatively,
I have put a current kernel with the patch included at:

  https://ftp.netbsd.org/pub/NetBSD/misc/jdc/sparc64/netbsd
  https://ftp.netbsd.org/pub/NetBSD/misc/jdc/sparc64/netbsd.gdb

With this patch, I see on my U2:

  [   1.0000000] esp0 at sbus0 slot 14 offset 0x8800000 vector 20 ipl 5: FAS366/HME, 40MHz, SCSI ID 7

The important thing being that the ipl (interrupt level) is now 5.  What was
happening was that the SCSI devices were assigned to ipl 3.  Higher level
interrupts can interrupt lower level interrupts and because ipl 3 was lower
than the level for the entropy softint (ipl 4) the entropy interrupt could
happen during a SCSI interrupt.  The patch moves all the disk interrupts
from ipl 3 to ipl 5.

Regards,

Julian

PS.  I also see:

  bpp0 at sbus0 slot 14 offset 0xc800000 vector 22 ipl 2: DMA rev unknown (0x20000000)
  SUNW,socal at sbus0 slot 0 offset 0x0 vector 3 ipl 2 not configured

which (ipl 2) are again lower than the softint, but I didn't fix those in this
version of the patch.
Index: sys/arch/sparc64/dev/fdc.c
===================================================================
RCS file: /cvsroot/src/sys/arch/sparc64/dev/fdc.c,v
retrieving revision 1.51
diff -u -r1.51 fdc.c
--- sys/arch/sparc64/dev/fdc.c	7 Aug 2021 16:19:05 -0000	1.51
+++ sys/arch/sparc64/dev/fdc.c	30 Aug 2023 05:57:27 -0000
@@ -825,7 +825,7 @@
 #ifdef SUN4
 	printf(" softpri %d: chip 8207%c\n", IPL_SOFTFDC, code);
 #elif SUN4U
-	printf(" softpri %d: chip 8207%c", PIL_FDSOFT, code);
+	printf(" softpri %d: chip 8207%c", IPL_BIO, code);
 	if (fdc->sc_flags & FDC_NOEJECT)
 		printf(": manual eject");
 	printf("\n");
Index: sys/arch/sparc64/include/intr.h
===================================================================
RCS file: /cvsroot/src/sys/arch/sparc64/include/intr.h,v
retrieving revision 1.31
diff -u -r1.31 intr.h
--- sys/arch/sparc64/include/intr.h	27 Jul 2012 05:36:12 -0000	1.31
+++ sys/arch/sparc64/include/intr.h	30 Aug 2023 05:57:27 -0000
@@ -54,7 +54,6 @@
 #define	IPL_HIGH	PIL_HIGH	/* everything */
 #define	IPL_HALT	5		/* cpu stop-self */
 #define	IPL_PAUSE	13		/* pause cpu */
-#define	IPL_FDSOFT	PIL_FDSOFT	/* floppy */
 
 /*
  * IPL_SAFEPRI is a safe priority for sleep to set for a spin-wait
Index: sys/arch/sparc64/include/psl.h
===================================================================
RCS file: /cvsroot/src/sys/arch/sparc64/include/psl.h,v
retrieving revision 1.63
diff -u -r1.63 psl.h
--- sys/arch/sparc64/include/psl.h	11 Jul 2023 11:02:07 -0000	1.63
+++ sys/arch/sparc64/include/psl.h	30 Aug 2023 05:57:27 -0000
@@ -73,9 +73,6 @@
 #define PSR_BITS "\20\16EC\15EF\10S\7PS\6ET"
 
 /* Interesting spl()s */
-#define PIL_SCSI	3
-#define PIL_FDSOFT	4
-#define PIL_AUSOFT	4
 #define PIL_BIO		5
 #define PIL_VIDEO	5
 #define PIL_TTY		6
@@ -514,12 +511,6 @@
 
 SPLHOLD(splsoftserial, 4)
 
-/* audio software interrupts are at software level 4 */
-SPLHOLD(splausoft, PIL_AUSOFT)
-
-/* floppy software interrupts are at software level 4 too */
-SPLHOLD(splfdsoft, PIL_FDSOFT)
-
 /*
  * Memory allocation (must be as high as highest network, tty, or disk device)
  */
Index: sys/arch/sparc64/sparc64/autoconf.c
===================================================================
RCS file: /cvsroot/src/sys/arch/sparc64/sparc64/autoconf.c,v
retrieving revision 1.238
diff -u -r1.238 autoconf.c
--- sys/arch/sparc64/sparc64/autoconf.c	22 Jan 2022 11:49:17 -0000	1.238
+++ sys/arch/sparc64/sparc64/autoconf.c	30 Aug 2023 05:57:28 -0000
@@ -170,12 +170,12 @@
 struct intrmap intrmap[] = {
 	{ "block",	PIL_FD },	/* Floppy disk */
 	{ "serial",	PIL_SER },	/* zs */
-	{ "scsi",	PIL_SCSI },
-	{ "scsi-2",	PIL_SCSI },
+	{ "scsi",	PIL_BIO },
+	{ "scsi-2",	PIL_BIO },
 	{ "network",	PIL_NET },
 	{ "display",	PIL_VIDEO },
 	{ "audio",	PIL_AUD },
-	{ "ide",	PIL_SCSI },
+	{ "ide",	PIL_BIO },
 /* The following devices don't have device types: */
 	{ "SUNW,CS4231",	PIL_AUD },
 	{ NULL,		0 }


Home | Main Index | Thread Index | Old Index