Experimental TARGET_ARCH armv6hf crashes on my RPi afer some time

Ralf Wenk iz-rpi03 at hs-karlsruhe.de
Tue Mar 25 12:30:38 UTC 2014


Hi,

I tried the new experimental TARGET_ARCH armv6hf on my raspberry pi.
World and kernel are build with
  make -j 8 -C $SRCROOT MALLOC_PRODUCTION=yes buildworld
  make -j 8 -C $SRCROOT KERNCONF=$KERNCONF WITH_FDT=yes buildkernel
and installed over a normal armv6 kernel and world. The release used was
FreeBSD 11.0-CURRENT #0 r263667M.

Within an hour since boot the system panics with an undefined floating point
instruction in supervisor mode.
This happened during a shutdown - but not on every shutdown - and during
normal system activity. On every shutdown there is a
  sleep: nanosleep: Invalid argument
message printed in the console.

I do not file a bug report because of the experimental state of armv6hf.

Gathered information from two panics:
panic: undefined floating point instruction in supervisor mode
KDB: enter: panic
[ thread pid 509 tid 100056 ]
Stopped at      $d:     ldrb    r15, [r15, r15, ror r15]!
db> bt
Tracing pid 509 tid 100056 td 0xc2675320
db_trace_self() at db_trace_self
         pc = 0xc04a38a0  lr = 0xc0136184 (db_stack_trace+0xf4)
         sp = 0xdd794668  fp = 0xdd794680
        r10 = 0xc05c29f0
db_stack_trace() at db_stack_trace+0xf4
         pc = 0xc0136184  lr = 0xc0135b3c (db_command+0x270)
         sp = 0xdd794688  fp = 0xdd794728
         r4 = 0x00000000  r5 = 0x00000000
         r6 = 0x00000000
db_command() at db_command+0x270
         pc = 0xc0135b3c  lr = 0xc01358a0 (db_command_loop+0x60)
         sp = 0xdd794730  fp = 0xdd794740
         r4 = 0xc04e1377  r5 = 0xc04f5222
         r6 = 0xc05c29dc  r7 = 0xdd794928
         r8 = 0xc05b92f0  r9 = 0xc05b92f4
        r10 = 0xc0577c30
db_command_loop() at db_command_loop+0x60
         pc = 0xc01358a0  lr = 0xc013831c (db_trap+0xd8)
         sp = 0xdd794748  fp = 0xdd794868
         r4 = 0x00000000  r5 = 0xc05c29e8
         r6 = 0xc05b9320
db_trap() at db_trap+0xd8
         pc = 0xc013831c  lr = 0xc02c2274 (kdb_trap+0xcc)
         sp = 0xdd794870  fp = 0xdd794890
         r4 = 0x00000000  r5 = 0x00000001
         r6 = 0xc05b9320  r7 = 0xdd794928
kdb_trap() at kdb_trap+0xcc
         pc = 0xc02c2274  lr = 0xc04b8eb0 (undefinedinstruction+0x2f8)
         sp = 0xdd794898  fp = 0xdd794920
         r4 = 0x00000000  r5 = 0x00000000
         r6 = 0xc04b8b08  r7 = 0xe7ffffff
         r8 = 0xc2675320  r9 = 0xc02c1b34
        r10 = 0xdd794928
undefinedinstruction() at undefinedinstruction+0x2f8
         pc = 0xc04b8eb0  lr = 0xc04a5410 (exception_exit)
         sp = 0xdd794928  fp = 0xdd794980
         r4 = 0xc04f527c  r5 = 0xc050fe47
         r6 = 0xc05c4460  r7 = 0xc05ab848
         r8 = 0xdd7949b4  r9 = 0xc2675320
        r10 = 0xc05ab7d0
exception_exit() at exception_exit
         pc = 0xc04a5410  lr = 0xc02c1b28 (kdb_enter+0x40)
         sp = 0xdd794978  fp = 0xdd794980
         r0 = 0xc05b9304  r1 = 0x00000000
         r2 = 0x00000001  r3 = 0x00000001
         r4 = 0xc04f527c  r5 = 0xc050fe47
         r6 = 0xc05c4460  r7 = 0xc05ab848
         r8 = 0xdd7949b4  r9 = 0xc2675320
        r10 = 0xc05ab7d0 r12 = 0x00000000
$a() at $a
         pc = 0xc02c1b38  lr = 0xc0285b54 (panic+0xc4)
         sp = 0xdd794988  fp = 0xdd7949a8
         r4 = 0x00000100
panic() at panic+0xc4
         pc = 0xc0285b54  lr = 0xc04b991c ($d)
         sp = 0xdd7949c0  fp = 0xdd7949c0
         r4 = 0x00000000  r5 = 0xc05c2890
         r6 = 0xc04b985c  r7 = 0xeca00b20
         r8 = 0xc2675320  r9 = 0xc04b9940
        r10 = 0xdd794a58
$d() at $d
         pc = 0xc04b991c  lr = 0xc04b8cac (undefinedinstruction+0xf4)
         sp = 0xdd7949c8  fp = 0xdd794a50
undefinedinstruction() at undefinedinstruction+0xf4
         pc = 0xc04b8cac  lr = 0xc04a5410 (exception_exit)
         sp = 0xdd794a58  fp = 0xdd794ad0
         r4 = 0xc2884640  r5 = 0xc2675320
         r6 = 0xc05c4640  r7 = 0xc05c7ec0
         r8 = 0x8791dcd3  r9 = 0xdd758eb8
        r10 = 0xc059e9e0
exception_exit() at exception_exit
         pc = 0xc04a5410  lr = 0xc04b6c80 (cpu_switch+0x60)
         sp = 0xdd794aa8  fp = 0xdd794ad0
         r0 = 0xdd794ef0  r1 = 0x00000001
         r2 = 0xdd794eb8  r3 = 0x00000000
         r4 = 0xc2884640  r5 = 0xc2675320
         r6 = 0xc05c4640  r7 = 0xc05c7ec0
         r8 = 0x8791dcd3  r9 = 0xdd758eb8
        r10 = 0xc059e9e0 r12 = 0xc0000780
vfp_store() at vfp_store+0x14
         pc = 0xc04b9940  lr = 0xc04b6c80 (cpu_switch+0x60)
         sp = 0xdd794aa8  fp = 0xdd794ad0
Unwind failure (no registers changed)
db> 
db> show proc 509
Process 509 (devd) at 0xc25c4640:
 state: NORMAL
 uid: 0  gids: 0
 parent: pid 1 at 0xc2431640
 ABI: FreeBSD ELF32
 arguments: /sbin/devd
 threads: 1
100056                   Run     CPU 255             devd
db>
db> show thread 100056
Thread 100056 at 0xc2675320:
 proc (pid 509): 0xc25c4640
 name: devd
 stack: 0xdd757000-0xdd758fff
 flags: 0x1000004  pflags: 0
 state: RUNNING (CPU 255)
 priority: 140
 container lock: sched lock (0xc05c4640)
db> 


system shutdown time has arrived
sleep: nanosleep: Invalid argument
panic: undefined floating point instruction in supervisor mode
KDB: enter: panic
[ thread pid 11 tid 100005 ]
Stopped at      $d:     ldrb    r15, [r15, r15, ror r15]!
db> bt        
Tracing pid 11 tid 100005 td 0xc2433960
db_trace_self() at db_trace_self
         pc = 0xc04a38a0  lr = 0xc0136184 (db_stack_trace+0xf4)
         sp = 0xdd749360  fp = 0xdd749378
        r10 = 0xc05c29f0
db_stack_trace() at db_stack_trace+0xf4
         pc = 0xc0136184  lr = 0xc0135b3c (db_command+0x270)
         sp = 0xdd749380  fp = 0xdd749420
         r4 = 0x00000000  r5 = 0x00000000
         r6 = 0x00000000
db_command() at db_command+0x270
         pc = 0xc0135b3c  lr = 0xc01358a0 (db_command_loop+0x60)
         sp = 0xdd749428  fp = 0xdd749438
         r4 = 0xc04e1377  r5 = 0xc04f5222
         r6 = 0xc05c29dc  r7 = 0xdd749620
         r8 = 0xc05b92f0  r9 = 0xc05b92f4
        r10 = 0xc0577c30
db_command_loop() at db_command_loop+0x60
         pc = 0xc01358a0  lr = 0xc013831c (db_trap+0xd8)
         sp = 0xdd749440  fp = 0xdd749560
         r4 = 0x00000000  r5 = 0xc05c29e8
         r6 = 0xc05b9320
db_trap() at db_trap+0xd8
         pc = 0xc013831c  lr = 0xc02c2274 (kdb_trap+0xcc)
         sp = 0xdd749568  fp = 0xdd749588
         r4 = 0x00000000  r5 = 0x00000001
         r6 = 0xc05b9320  r7 = 0xdd749620
kdb_trap() at kdb_trap+0xcc
         pc = 0xc02c2274  lr = 0xc04b8eb0 (undefinedinstruction+0x2f8)
         sp = 0xdd749590  fp = 0xdd749618
         r4 = 0x00000000  r5 = 0x00000000
         r6 = 0xc04b8b08  r7 = 0xe7ffffff
         r8 = 0xc2433960  r9 = 0xc02c1b34
        r10 = 0xdd749620
undefinedinstruction() at undefinedinstruction+0x2f8
         pc = 0xc04b8eb0  lr = 0xc04a5410 (exception_exit)
         sp = 0xdd749620  fp = 0xdd749678
         r4 = 0xc04f527c  r5 = 0xc050fe47
         r6 = 0xc05c4460  r7 = 0xc05ab848
         r8 = 0xdd7496ac  r9 = 0xc2433960
        r10 = 0xc05ab7d0
exception_exit() at exception_exit
         pc = 0xc04a5410  lr = 0xc02c1b28 (kdb_enter+0x40)
         sp = 0xdd749670  fp = 0xdd749678
         r0 = 0xc05b9304  r1 = 0x00000000
         r2 = 0x00000001  r3 = 0x00000001
         r4 = 0xc04f527c  r5 = 0xc050fe47
         r6 = 0xc05c4460  r7 = 0xc05ab848
         r8 = 0xdd7496ac  r9 = 0xc2433960
        r10 = 0xc05ab7d0 r12 = 0x00000000
$a() at $a
         pc = 0xc02c1b38  lr = 0xc0285b54 (panic+0xc4)
         sp = 0xdd749680  fp = 0xdd7496a0
         r4 = 0x00000100
panic() at panic+0xc4
         pc = 0xc0285b54  lr = 0xc04b991c ($d)
         sp = 0xdd7496b8  fp = 0xdd7496b8
         r4 = 0x00000000  r5 = 0xc05c2890
         r6 = 0xc04b985c  r7 = 0xeca00b20
         r8 = 0xc2433960  r9 = 0xc04b9940
        r10 = 0xdd749750
$d() at $d
         pc = 0xc04b991c  lr = 0xc04b8cac (undefinedinstruction+0xf4)
         sp = 0xdd7496c0  fp = 0xdd749748
undefinedinstruction() at undefinedinstruction+0xf4
         pc = 0xc04b8cac  lr = 0xc04a5410 (exception_exit)
         sp = 0xdd749750  fp = 0xdd7497c8
         r4 = 0xc25a8000  r5 = 0xc2433960
         r6 = 0xc05c4640  r7 = 0xc05c7ec0
         r8 = 0x5aee06ac  r9 = 0xdb3abeb8
        r10 = 0xc059e9e0
exception_exit() at exception_exit
         pc = 0xc04a5410  lr = 0xc04b6c80 (cpu_switch+0x60)
         sp = 0xdd7497a0  fp = 0xdd7497c8
         r0 = 0xdd749ef0  r1 = 0x00000001
         r2 = 0xdd749eb8  r3 = 0x00000000
         r4 = 0xc25a8000  r5 = 0xc2433960
         r6 = 0xc05c4640  r7 = 0xc05c7ec0
         r8 = 0x5aee06ac  r9 = 0xdb3abeb8
        r10 = 0xc059e9e0 r12 = 0xc0000708
vfp_store() at vfp_store+0x14
         pc = 0xc04b9940  lr = 0xc04b6c80 (cpu_switch+0x60)
         sp = 0xdd7497a0  fp = 0xdd7497c8
Unwind failure (no registers changed)
db> show proc 11
Process 11 (intr) at 0xc2431000:
 state: NORMAL
 uid: 0  gids: 0
 parent: pid 0 at 0xc05c3658
 ABI: null
 threads: 24
100034                   I                           [intr17: dwcotg0]
100033                   I                           [swi0: uart]
100032                   I                           [intr70: sdhci_bcm0]
100031                   I                           [intr1: mbox0]
100030                   I                           [intr35: bcm_dma0]
100029                   I                           [intr34: bcm_dma0]
100028                   I                           [intr33: bcm_dma0]
100027                   I                           [intr32: bcm_dma0]
100026                   I                           [intr31: bcm_dma0]
100025                   I                           [intr30: bcm_dma0]
100024                   I                           [intr29: bcm_dma0]
100023                   I                           [intr28: bcm_dma0]
100022                   I                           [intr27: bcm_dma0]
100021                   I                           [intr26: bcm_dma0]
100020                   I                           [intr25: bcm_dma0]
100019                   I                           [intr24: bcm_dma0]
100018                   I                           [intr62: spi0]
100017                   I                           [intr61: iichb0+]
100015                   I                           [swi6: Giant taskq]
100014                   I                           [swi6: task queue]
100010                   I                           [swi5: fast taskq]
100005                   Run     CPU 255             [swi4: clock (0)]
100004                   I                           [swi3: vm]
100003                   I                           [swi1: netisr 0]
db> sh thread 100005
Thread 100005 at 0xc2433960:
 proc (pid 11): 0xc2431000
 name: swi4: clock (0)
 stack: 0xdb3aa000-0xdb3abfff
 flags: 0x1000004  pflags: 0x200400
 state: RUNNING (CPU 255)
 priority: 40
 container lock: sched lock (0xc05c4640)
db> 


Ralf



More information about the freebsd-arm mailing list