Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 31 Aug 2013 11:40:35 +0200
From:      Mattia Rossi <mattia.rossi.mate@gmail.com>
To:        freebsd-arm@freebsd.org
Subject:   Alignment Fault 1 - still/again
Message-ID:  <5221BA13.5040309@gmail.com>

next in thread | raw e-mail | index | archive | help
I've already posted my alignment issues once here, where I got stuck in 
something like this:

mvsch1: <Marvell SATA channel> at channel 1 on mvs0
cryptosoft0: <software crypto>
Timecounters tick every 10.000 msec
IPsec: Initialized Security Association Processing.
ipfw2 (+ipv6) initialized, divert enabled, nat enabled, default to 
accept, loggd
DUMMYNET 0 with IPv6 initialized (100409)
load_dn_sched dn_sched FIFO loaded
load_dn_sched dn_sched PRIO loaded
load_dn_sched dn_sched QFQ loaded
load_dn_sched dn_sched RR loaded
load_dn_sched dn_sched WF2Q+ loaded
Fatal kernel mode data abort: 'Alignment Fault 1'
trapframe: 0xc0f1acf0
FSR=00000001, FAR=c0f1aed4, spsr=a00000d3
r0 =c0f05160, r1 =c3b4cc40, r2 =c0f1aebc, r3 =00000001
r4 =c0f05160, r5 =c3b4cc40, r6 =c0ef9244, r7 =c0f0b180
r8 =00000000, r9 =c0edf5f0, r10=00000104, r11=c0f1ad68
r12=00000000, ssp=c0f1ad40, slr=c0ad1690, pc =c0d9d8c4

[ thread pid 0 tid 100036 ]
Stopped at      cpu_switch+0x28:        und     0xe1c281f8
db>

I've managed to get around this for a while by adding

options SCTP

to the kernel. But then usually got stuck at "entropy harvesting", like 
Ian and Ronald. (See WITHOUT_ARM_EABI) thread.
Compiling without EABI doesn't help anymore, as that only changes things 
for userspace, where I got a Signal 11 for init instead of getting stuck 
at entropy harvesting.

Now I've updated to r255074M and options SCTP doesn't help anymore, and 
I'm stuck at the alignment failure above.
So I activated witness and here's the output:

ipfw2 (+ipv6) initialized, divert enabled, nat enabled, default to 
accept, loggd
DUMMYNET 0 with IPv6 initialized (100409)
load_dn_sched dn_sched FIFO loaded
load_dn_sched dn_sched PRIO loaded
load_dn_sched dn_sched QFQ loaded
load_dn_sched dn_sched RR loaded
load_dn_sched dn_sched WF2Q+ loaded
lock order reversal:
  1st 0xc1094e2c entropy harvest mutex (entropy harvest mutex) @ 
/usr/devel/drea2
  2nd 0xc3896420 uart_hwmtx (uart_hwmtx) @ 
/usr/devel/dreamplug/sys/dev/uart/uar2
KDB: stack backtrace:
db_trace_self() at db_trace_self
          pc = 0xc0d98464  lr = 0xc0943cf4 (X_db_symbol_values+0x11c)
          sp = 0xdcfb19c8  fp = 0xdcfb1ae0
         r10 = 0xc1094e2c
X_db_symbol_values() at X_db_symbol_values+0x11c
          pc = 0xc0943cf4  lr = 0xc0ae05c4 (kdb_backtrace+0x38)
          sp = 0xdcfb1ae8  fp = 0xdcfb1af0
          r4 = 0xc0f2f274  r5 = 0xc0df4456
          r6 = 0xc0dff4d1  r7 = 0xc0def19a
kdb_backtrace() at kdb_backtrace+0x38
          pc = 0xc0ae05c4  lr = 0xc0afaacc (witness_checkorder+0xddc)
          sp = 0xdcfb1af8  fp = 0xdcfb1b48
          r4 = 0xc0df4335
witness_checkorder() at witness_checkorder+0xddc
          pc = 0xc0afaacc  lr = 0xc0a9aa34 (__mtx_lock_spin_flags+0xc8)
          sp = 0xdcfb1b50  fp = 0xdcfb1b70
          r4 = 0x00000000  r5 = 0xc0f16140
          r6 = 0xc3896430  r7 = 0xc3896420
          r8 = 0x00000000  r9 = 0xc0df4453
         r10 = 0x0000005c
__mtx_lock_spin_flags() at __mtx_lock_spin_flags+0xc8
          pc = 0xc0a9aa34  lr = 0xc0994788 (uart_tty_detach+0x9c4)
          sp = 0xdcfb1b78  fp = 0xdcfb1b88
          r4 = 0x0000006c  r5 = 0xc0f1e694
          r6 = 0xc0f2f270  r7 = 0xc0f1fb60
          r8 = 0xc0ef1f80  r9 = 0xc0f1fb40
         r10 = 0xdcfb1cf0
uart_tty_detach() at uart_tty_detach+0x9c4
          pc = 0xc0994788  lr = 0xc0a689dc (cnputc+0x80)
          sp = 0xdcfb1b90  fp = 0xdcfb1ba8
          r4 = 0x0000006c  r5 = 0xc0ee26a0
          r6 = 0xc0f2f270
cnputc() at cnputc+0x80
          pc = 0xc0a689dc  lr = 0xc0ae638c (kvprintf+0x128c)
          sp = 0xdcfb1bb0  fp = 0xdcfb1c18
          r4 = 0x00000005  r5 = 0xdcfb1cf0
          r6 = 0x0000006c  r7 = 0x00000000
          r8 = 0x00000000  r9 = 0xc0ae61f8
kvprintf() at kvprintf+0x128c
          pc = 0xc0ae638c  lr = 0xc0ae51b4 (kvprintf+0xb4)
          sp = 0xdcfb1c20  fp = 0xdcfb1cd8
          r4 = 0xc0e10430  r5 = 0x00000000
          r6 = 0x00000000  r7 = 0x00000000
          r8 = 0x00000000  r9 = 0xc0ae61f8
         r10 = 0xdcfb1cf0
kvprintf() at kvprintf+0xb4
          pc = 0xc0ae51b4  lr = 0xc0ae68f4 (printf+0x50)
          sp = 0xdcfb1ce0  fp = 0xdcfb1d10
          r4 = 0xc36f2da8  r5 = 0xc36f2a68
          r6 = 0x00000000  r7 = 0xc106230c
          r8 = 0xc1096524  r9 = 0x00000001
         r10 = 0xc106231b
printf() at printf+0x50
          pc = 0xc0ae68f4  lr = 0xc0afa82c (witness_checkorder+0xb3c)
          sp = 0xdcfb1d28  fp = 0xdcfb1d78
witness_checkorder() at witness_checkorder+0xb3c
          pc = 0xc0afa82c  lr = 0xc0a9aa34 (__mtx_lock_spin_flags+0xc8)
          sp = 0xdcfb1d80  fp = 0xdcfb1da0
          r4 = 0x00000000  r5 = 0xc0f16140
          r6 = 0xc0f2f634  r7 = 0xc0f2f624
          r8 = 0x00000000  r9 = 0xc0e0e641
         r10 = 0x000000f0
__mtx_lock_spin_flags() at __mtx_lock_spin_flags+0xc8
          pc = 0xc0a9aa34  lr = 0xc0aece10 (sleepq_lock+0x30)
          sp = 0xdcfb1da8  fp = 0xdcfb1da8
          r4 = 0xc383c320  r5 = 0xc0f1ded4
          r6 = 0x00000000  r7 = 0x00000000
          r8 = 0x00000000  r9 = 0xc0f16140
         r10 = 0xc0f1ded0
sleepq_lock() at sleepq_lock+0x30
          pc = 0xc0aece10  lr = 0xc0ab5dc0 (msleep_spin_sbt+0x84)
          sp = 0xdcfb1db0  fp = 0xdcfb1df0
msleep_spin_sbt() at msleep_spin_sbt+0x84
          pc = 0xc0ab5dc0  lr = 0xc095e39c (random_yarrow_write+0x458)
          sp = 0xdcfb1df8  fp = 0xdcfb1e38
          r4 = 0xc1094e3c  r5 = 0x00000000
          r6 = 0xc0def197  r7 = 0x00000000
          r8 = 0x00000000  r9 = 0x00000000
         r10 = 0xc0f1ded0
random_yarrow_write() at random_yarrow_write+0x458
          pc = 0xc095e39c  lr = 0xc0a802ac (fork_exit+0x84)
          sp = 0xdcfb1e40  fp = 0xdcfb1e58
          r4 = 0xc383c320  r5 = 0xc383a320
          r6 = 0xc095e12c  r7 = 0xc0f16140
          r8 = 0xdcfb1e60  r9 = 0x00000000
         r10 = 0x00000000
fork_exit() at fork_exit+0x84
          pc = 0xc0a802ac  lr = 0xc0da85d4 (fork_trampoline+0x14)
          sp = 0xdcfb1e60  fp = 0x00000000
          r4 = 0xc095e12c  r5 = 0x00000000
          r6 = 0x00000000  r7 = 0x00000000
          r8 = 0x00000000  r9 = 0x00000000
fork_trampoline() at fork_trampoline+0x14
          pc = 0xc0da85d4  lr = 0xc0da85d4 (fork_trampoline+0x14)
          sp = 0xdcfb1e60  fp = 0x00000000
Unable to unwind further
KDB: enter: witness_checkorder
[ thread pid 13 tid 100012 ]
Stopped at      kdb_enter+0x4c: ldrb    r15, [r15, r15, ror r15]!
db>

Any hints?

Cheers,

Mat



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5221BA13.5040309>