Re: sparc64 traps during probe (r293243)

From: Kurt Lidl <lidl_at_pix.net>
Date: Fri, 8 Jan 2016 15:42:16 -0500
On 1/8/16 11:57 AM, Mark Cave-Ayland wrote:
> On 08/01/16 15:42, Kurt Lidl wrote:
>
>> I recently updated a sparc64 V120 from r291993
>> to r293243, and it now traps during the
>> autoconfiguration phase of the kernel boot:
>>
>> Hit [Enter] to boot immediately, or any other key for command prompt.
>> Booting [/boot/kernel/kernel]...
>> jumping to kernel entry at 0xc00b0000.
>> GDB: no debug ports present
>> KDB: debugger backends: ddb
>> KDB: current backend: ddb
>> Copyright (c) 1992-2016 The FreeBSD Project.
>> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
>>      The Regents of the University of California. All rights reserved.
>> FreeBSD is a registered trademark of The FreeBSD Foundation.
>> FreeBSD 11.0-CURRENT #4 r293243M: Thu Jan  7 13:50:04 EST 2016
>>      lidl_at_ton.pix.net:/usr/obj/usr/src/sys/GENERIC sparc64
>> gcc version 4.2.1 20070831 patched [FreeBSD]
>> WARNING: WITNESS option enabled, expect reduced performance.
>> VT: init without driver.
>> real memory  = 2147483648 (2048 MB)
>> avail memory = 2063785984 (1968 MB)
>> cpu0: Sun Microsystems UltraSparc-IIe Processor (648.00 MHz CPU)
>>
>> [...]
>>
>> da0 at sym0 bus 0 scbus2 target 0 lun 0
>> da0: <FUJITSU MAP3367NC 5605> Fixed Direct Access SCSI-3 device
>> da0: Serial Number UPL3P310365J
>> da0: 80.000MB/s transfers (40.000MHz, offset 31, 16bit)
>> da0: Command Queueing enabled
>> da0: 34732MB (71132959 512 byte sectors)
>> cd0 at ata2 bus 0 scbus0 target 0 lun 0
>> cd0: <TEAC DV-28E-B 1.2B> Removable CD-ROM SCSI device
>> cd0: 33.300MB/s transfers (UDMA2, ATAPI 12bytes, PIO 65534bytes)
>> cd0: 393MB (201600 2048 byte sectors)
>> da1 at sym0 bus 0 scbus2 target 1 lun 0
>> da1: <FUJITSU MAP3367NC 5605> Fixed Direct Access SCSI-3 device
>> da1: Serial Number UPL3P3506STC
>> da1: 80.000MB/s transfers (40.000MHz, offset 31, 16bit)
>> da1: Command Queueing enabled
>> da1: 34732MB (71132959 512 byte sectors)
>> WARNING: WITNESS option enabled, expect reduced performance.
>> Trying to mount root from zfs:sys/ROOT/default []...
>> GEOM_MIRROR: Device mirror/gswap launched (2/2).
>> [ thread pid 1 tid 100002 ]
>> Stopped at      tl0_utrap+0x20: ldx             [%l0 + %l1], %l0
>> db> bt
>> Tracing pid 1 tid 100002 td 0xfffff800016164d0
>> KDB: reentering
>> KDB: stack backtrace:
>> kdb_reenter() at kdb_reenter+0x5c
>> trap() at trap+0x2fc
>> -- data access exception sfar=0xfffffcf821ca0218 sfsr=0x41029
>> %o7=0xc06165e8 --
>> sched_clock() at sched_clock+0x94
>> statclock_cnt() at statclock_cnt+0x1c0
>> handleevents() at handleevents+0x138
>> timercb() at timercb+0x410
>> tick_intr() at tick_intr+0x220
>> -- interrupt level=0xe pil=0 %o7=0xc09c6c20 --
>> -- kernel stack fault %o7=0xc00b1288 --
>> db_read_bytes() at db_read_bytes+0x44
>> KDB: reentering
>> KDB: stack backtrace:
>> kdb_reenter() at kdb_reenter+0x5c
>> trap() at trap+0x2fc
>> -- kernel stack fault %o7=0xc011f8f0 --
>> db_read_bytes() at db_read_bytes+0x44
>> KDB: reentering
>> KDB: stack backtrace:
>> kdb_reenter() at kdb_reenter+0x5c
>> trap() at trap+0x2fc
>>
>> And then the stack backtrace just keeps repeating.
>
> This looks amazingly similar to what I get trying to boot FreeBSD under
> QEMU, i.e. pointing at sched_clock():
>
>
> Booting [/boot/kernel/kernel]...
> jumping to kernel entry at 0xc00b0000.
> GDB: no debug ports present
> KDB: debugger backends: ddb
> KDB: current backend: ddb
> Copyright (c) 1992-2015 The FreeBSD Project.
> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
>          The Regents of the University of California. All rights reserved.
> FreeBSD is a registered trademark of The FreeBSD Foundation.
> FreeBSD 11.0-CURRENT #0 1eb7424(master): Thu Sep 24 06:41:18 BST 2015
>
> mca_at_freebsd:/usr/home/mca/obj/sparc64.sparc64/usr/home/mca/src/sys/GENERIC
> sparc64
> gcc version 4.2.1 20070831 patched [FreeBSD]
> WARNING: WITNESS option enabled, expect reduced performance.
> VT: init without driver.
> real memory  = 134217728 (128 MB)
> avail memory = 98312192 (93 MB)
> cpu0: Sun Microsystems UltraSparc-IIi Processor (100.00 MHz CPU)
> random: entropy device external interface
> kbd0 at kbdmux0
> nexus0: <Open Firmware Nexus device>
> nexus0: <builtin>: incomplete
> pcib0: <U2P UPA-PCI bridge> mem 0x1fe00000000-0x1fe01ffffff irq
> 2032,2030,2031,2021 on nexus0
> pcib0: Sabre, impl 0, version 0, IGN 0x1f, bus A, 33MHz
> pcib0: DVMA map: 0xc0000000 to 0xc3ffffff 8192 entries
> pcib0: [GIANT-LOCKED]
> pci0: <OFW PCI bus> on pcib0
> pcib1: <APB PCI-PCI bridge> at device 1.0 on pci0
> pci1: <OFW PCI bus> on pcib1
> pcib2: <APB PCI-PCI bridge> at device 1.1 on pci0
> pci2: <OFW PCI bus> on pcib2
> ebus0: <PCI-EBus2 bridge> port 0x4000-0x7fff mem 0x3000000-0x3ffffff at
> device 3.0 on pci0
> vgapci0: <VGA-compatible display> mem
> 0x1000000-0x1ffffff,0x2000000-0x2000fff at device 2.0 on pci0
> vgapci0: Boot video device
> eeprom0: <EEPROM/clock> addr 0x1400002000-0x1400003fff on ebus0
> eeprom0: model mk48t59
> ebus0: <fdthree> addr 0 (no driver attached)
> uart0: <16550 or compatible> addr 0x14000003f8-0x14000003ff irq 43 on ebus0
> uart0: console (9600,n,8,1)
> ebus0: <kb_ps2> addr 0x1400000060-0x1400000067 (no driver attached)
> pci0: <network, ethernet> at device 4.0 (no driver attached)
> atapci0: <SiI (CMD) 646U2 UDMA33 controller> port
> 0x8100-0x8107,0x8180-0x8183,0x8200-0x8207,0x8280-0x8283,0x8300-0x830f at
> device 5.0 on pci0
> ata2: <ATA channel> at channel 0 on atapci0
> ata3: <ATA channel> at channel 1 on atapci0
> cryptosoft0: <software crypto> on nexus0
> nexus0: <syscons> type unknown (no driver attached)
> Timecounter "tick" frequency 100000000 Hz quality 1000
> Event timer "tick" frequency 100000000 Hz quality 1000
> Timecounters tick every 1.000 msec
> IPsec: Initialized Security Association Processing.
> cd0 at ata3 bus 0 scbus1 target 0 lun 0
> cd0: <QEMU QEMU DVD-ROM 2.5+> Removable CD-ROM SCSI device
> cd0: Serial Number QM00003
> cd0: 33.300MB/s transfers (UDMA2, ATAPI 12bytes, PIO 65534bytes)
> cd0: cd present [250560 x 2048 byte records]
> WARNING: WITNESS option enabled, expect reduced performance.
> Trying to mount root from cd9660:/dev/iso9660/TEST [ro]...
> [ thread pid 1 tid 100002 ]
> Stopped at      tl1_trap+0x24:  stx             %o0, [%sp + 0x997]
> db> bt
> Tracing pid 1 tid 100002 td 0xfffff800015e84d0
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc05743e0 --
> sched_clock() at sched_clock+0x94
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> db_read_bytes() at db_read_bytes+0x44
> KDB: reentering
> KDB: stack backtrace:
> kdb_reenter() at kdb_reenter+0x5c
> trap() at trap+0x2fc
> -- kernel stack fault %o7=0xc011a050 --
> panic: longjmp botch
> cpuid = -1012475520
> KDB: stack backtrace:
> Uptime: 3s
>
>
> Note also the "longjmp botch" error right at the end. This is with the
> sun4u timer fix patch developed with help from Marius which has recently
> been applied to QEMU git master. So maybe this is a kernel bug after all?
>
>
> ATB,
>
> Mark.
>

I decided to try a completely up to date tree, so I cross-built r293425
on an amd64 machine and copied to the sparc64.

That kernel did work, much to my surprise.  I have updated the source
tree on the sparc64 to the same version and am now doing a buildworld
natively.

-Kurt
Received on Fri Jan 08 2016 - 19:42:25 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:02 UTC