Re: sparc64 traps during probe (r293243)

Kurt Lidl <[email protected]>
Newsgroups gmane.os.freebsd.current,gmane.os.freebsd.devel.sparc
Message-ID <[email protected]>
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
>>      [email protected]:/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@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

_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.