Port-sparc64 archive

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

Kernel stack versus U45/V245



Hi,

I was wondering about the resets on the U45 at start-up time.  From a couple
of conversations, in particular the messages:

  https://mail-index.netbsd.org/port-sparc64/2019/03/11/msg002848.html
  https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=59787

it looks like we run out of kernel stack.  I wonder if we should increase
the stack by another page generally (or make it an option)?

I realise that it's possible to look at all the devices for large stack
consumers, but I'm not sure that will help us on the U45, especially if
we see a small increase in PCI or PPB in the future.  The U45 (and V245)
architecture means that we have a lot of ppbX at pciY followed by
pciZ at ppbX (see below).  Each of these adds 10 functions to the stack
before we get to the end device.  aucer0 is depth 9, so has 4 of the
pci/ppb/pci iterations.  Note, that I haven't tried DIAGNOSTIC on my V245
yet, but I see that it has scsibus2 at mpt2 at depth 12.  For comparison,
the maximum depth on the V240 or SB2000 is 8, and on the U2 is 5.

Thoughts?

Regards,

J

Ultra 45 attach depths:
 0  mainbus0
 1    cpu0 at mainbus0
 1    cpu1 at mainbus0
 1    pyro0 at mainbus0
 2      pci0 at pyro0
 3        ppb0 at pci0
 4          pci1 at ppb0
 5            ppb1 at pci1
 6              pci2 at ppb1
 7                ppb2 at pci2
 8                  pci3 at ppb2
 9                    ohci0 at pci3
10                      usb0 at ohci0
 9                    ohci1 at pci3
10                      usb1 at ohci1
 9                    ohci2 at pci3
10                      usb2 at ohci2
 9                    ehci0 at pci3
10                      usb3 at ehci0
 9                    auacer0 at pci3
10                      audio0 at auacer0
11                        spkr0 at audio0
 9                    alipm0 at pci3
 9                    aceride0 at pci3
10                      atabus0 at aceride0
10                      atabus1 at aceride0
 5            ppb3 at pci1
 6              pci4 at ppb3
 7                ppb4 at pci4
 8                  pci5 at ppb4
 9                    bge0 at pci5
10                      brgphy0 at bge0
 9                    bge1 at pci5
10                      brgphy1 at bge1
 5            ppb5 at pci1
 6              pci6 at ppb5
 7                wm0 at pci6
 8                  igphy0 at wm0
 7                wm1 at pci6
 8                  igphy1 at wm1
 5            ppb6 at pci1
 6              pci7 at ppb6
 5            ppb7 at pci1
 6              pci8 at ppb7
 7                ppb8 at pci8
 8                  pci9 at ppb8
 9                    mpt0 at pci9
10                      scsibus0 at mpt0
 7                ppb9 at pci8
 8                  pci10 at ppb9
 9                    mpt1 at pci10
10                      scsibus1 at mpt1
 9                    mpt2 at pci10
10                      scsibus2 at mpt2
 1    pyro1 at mainbus0
 2      pci11 at pyro1
 3        radeonfb0 at pci11
 4          wsdisplay1 at radeonfb0
 1    ebus0 at mainbus0
 2      bq4802rtc0 at ebus0
 2      com0 at ebus0
 2      com1 at ebus0
 2      pcfiic0 at ebus0
 3        iic0 at pcfiic0
 4          pcagpio0 at iic0
 4          seeprom0 at iic0
 4          seeprom1 at iic0
 4          seeprom2 at iic0
 4          adt7462sm0 at iic0
 4          lm95221ts0 at iic0
 4          nxp75a0 at iic0
 1    firei2c0 at mainbus0
 2      iic1 at firei2c0
 3        spdmem0 at iic1
 3        spdmem1 at iic1
 3        spdmem2 at iic1
 3        spdmem3 at iic1
 3        spdmem4 at iic1
 3        spdmem5 at iic1
 3        spdmem6 at iic1
 3        spdmem7 at iic1
 1    firei2c1 at mainbus0
 2      iic2 at firei2c1
 3        seeprom3 at iic2
 3        pcagpio1 at iic2
 1    jbusi2c0 at mainbus0
 2      iic3 at jbusi2c0
 3        seeprom4 at iic3
11                        uhub0 at usb0
11                        uhub1 at usb1
11                        uhub2 at usb2
11                        uhub3 at usb3
12                          uhub4 at uhub3
11                        sd0 at scsibus0
11                        sd1 at scsibus0

V245 attach depths:
 0  mainbus0
 1    cpu0 at mainbus0
 1    cpu1 at mainbus0
 1    pyro0 at mainbus0
 2      pci0 at pyro0
 3        ppb0 at pci0
 4          pci1 at ppb0
 5            ppb1 at pci1
 6              pci2 at ppb1
 7                ppb2 at pci2
 8                  pci3 at ppb2
 9                    ohci0 at pci3
10                      usb0 at ohci0
 9                    ohci1 at pci3
10                      usb1 at ohci1
 9                    ehci0 at pci3
10                      usb2 at ehci0
 9                    ebus0 at pci3
10                      rtc0 at ebus0
 9                    aceride0 at pci3
10                      atabus0 at aceride0
10                      atabus1 at aceride0
 5            ppb3 at pci1
 6              pci4 at ppb3
 5            ppb4 at pci1
 6              pci5 at ppb4
 7                ppb5 at pci5
 8                  pci6 at ppb5
 9                    mpt0 at pci6
10                      scsibus0 at mpt0
 9                    mpt1 at pci6
10                      scsibus1 at mpt1
 5            ppb6 at pci1
 6              pci7 at ppb6
 7                ppb7 at pci7
 8                  pci8 at ppb7
 9                    bge0 at pci8
10                      brgphy0 at bge0
 9                    bge1 at pci8
10                      brgphy1 at bge1
 9                    ppb8 at pci8
10                      pci9 at ppb8
 5            ppb9 at pci1
 6              pci10 at ppb9
 7                ppb10 at pci10
 8                  pci11 at ppb10
 9                    bge2 at pci11
10                      brgphy2 at bge2
 9                    bge3 at pci11
10                      brgphy3 at bge3
 9                    ppb11 at pci11
10                      pci12 at ppb11
11                        mpt2 at pci12
12                          scsibus2 at mpt2
 1    pyro1 at mainbus0
 2      pci13 at pyro1
 3        ppb12 at pci13
 4          pci14 at ppb12
 5            cas0 at pci14
 6              gphyter0 at cas0
 3        ppb13 at pci13
 4          pci15 at ppb13
 1    ebus1 at mainbus0
 2      com0 at ebus1
 2      com1 at ebus1
 1    firei2c0 at mainbus0
 2      iic0 at firei2c0
 3        seeprom0 at iic0
 3        seeprom1 at iic0
 3        seeprom2 at iic0
 3        seeprom3 at iic0
 3        pcf8574io0 at iic0
 3        pcf8574io1 at iic0
 3        pcagpio0 at iic0
 3        seeprom4 at iic0
 3        seeprom5 at iic0
 3        seeprom6 at iic0
 3        seeprom7 at iic0
 3        adt7462sm0 at iic0
 3        dsrtc0 at iic0
 3        spdmem0 at iic0
 3        spdmem1 at iic0
 3        spdmem2 at iic0
 3        spdmem3 at iic0
 3        spdmem4 at iic0
 3        spdmem5 at iic0
 3        spdmem6 at iic0
 3        spdmem7 at iic0
11                        uhub0 at usb0
11                        uhub1 at usb1
11                        uhub2 at usb2
12                          uhub3 at uhub1
13                            sd0 at scsibus2
13                            sd1 at scsibus2
13                            sd2 at scsibus2

PS.  Depths generated by:
#!/bin/sh
awk 'BEGIN {
	root="mainbus0"
	printf(" 0  mainbus0\n");
	depths["mainbus0"] = 0;
} {
	if ( $0 ~ /[0-9] at [a-z0-9]*/) {
		for (f = 0; f < NF; f++)
			if ($f == "at")
				break;
		node = $(f - 1);
		parent = $(f + 1);
		sub(":$", "", parent);
		for (d in depths) {
			if (d == parent) {
				ndepth = depths[d] + 1;
				depths[node] = ndepth;
				printf("%2d  ", ndepth);
				for (i = 0; i < ndepth; i++)
					printf("  ");
				printf("%s at %s\n", node, parent);
			}
		}
	}
}' < $1
-- 


Home | Main Index | Thread Index | Old Index