ATA_CAM-ed mvsata(4) on OpenRD-client
Norikatsu Shigemura
nork at FreeBSD.org
Wed Feb 17 17:39:47 UTC 2010
Hi mav!
I got a OpenRD-client (Marvell 88F6281 SoC), and I'm tring to
make mvsata(4) ATA_CAM, like following:
based on sys/arm/conf/DB-88F6XXX
- - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# SATA
#device ata
#device atadisk
device atacore
device atamvsata
options ATA_CAM
- - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
But I got following panic, my I help you?
In this time, I attached no devices to SATA/eSATA port.
- - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sata0: <Marvell Integrated SATA Controller> at mem 0xf1080000-0xf1085fff irq 21 on mbus0
sata0: [MPSAFE]
sata0: [ITHREAD]
ata0: <Marvell Integrated SATA Channel> on sata0
ata0: [MPSAFE]
ata0: [ITHREAD]
ata1: <Marvell Integrated SATA Channel> on sata0
ata1: [MPSAFE]
ata1: [ITHREAD]
spin lock 0xc3766680 (fvH) held by 0xc3613b48 (tid -1061308344) too long
panic: spin lock held too long
KDB: enter: panic
[ thread pid 0 tid 100000 ]
Stopped at 0xc09dcb50 = kdb_enter+0x48: ldrb r15, [r15, r15, ror r15]!
db>
- - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
So I tried to get following information:
- - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
db> show locks
exclusive sleep mutex Giant (Giant) r = 0 (0xc0be3ad4) locked @ /usr/src/sys/kern/kern_module.c:117
db> show alllocks
Process 0 (kernel) thread 0xc0be1fa0 (100000)
exclusive sleep mutex Giant (Giant) r = 0 (0xc0be3ad4) locked @ /usr/src/sys/kern/kern_module.c:117
db> show lockedvnods
Locked vnodes
db> show pcpu
cpuid = 0
dynamic pcpu = 0x17fc00
curthread = 0xc0be1fa0: pid 0 "swapper"
curpcb = 0xc0d62ef8
fpcurthread = none
idlethread = 0xc357bd80: pid 10 "idle"
spin locks held:
db> bt
Tracing pid 0 tid 100000 td 0xc0be1fa0
kdb_enter() at 0xc09dcb18 = kdb_enter+0x10
scp=0xc09dcb18 rlv=0xc09b2cf0 (0xc09b2cf0 = panic+0xcc)
rsp=0xc0d62c1c rfp=0xc0d62c30
r4=0x00000100
panic() at 0xc09b2c38 = panic+0x14
scp=0xc09b2c38 rlv=0xc09a6fb8 (0xc09a6fb8 = _thread_lock_flags+0x170)
rsp=0xc0d62c44 rfp=0xc0d62c8c
_thread_lock_flags() at 0xc09a6e58 = _thread_lock_flags+0x10
scp=0xc09a6e58 rlv=0xc09e9e98 (0xc09e9e98 = turnstile_claim+0x174)
rsp=0xc0d62c90 rfp=0xc0d62cac
r10=0xc3556000 r9=0x00000000
r8=0xc3556000 r7=0x00000044 r6=0xc3556000 r5=0xc3766680
r4=0xc0b644c0
turnstile_claim() at 0xc09e9e40 = turnstile_claim+0x11c
scp=0xc09e9e40 rlv=0xc09ea17c (0xc09ea17c = turnstile_wait+0x208)
rsp=0xc0d62cb0 rfp=0xc0d62cdc
r7=0xc0be1fa0 r6=0xc0be8e40
r5=0xc0b644c0 r4=0x00000000
turnstile_wait() at 0xc09e9f84 = turnstile_wait+0x10
scp=0xc09e9f84 rlv=0xc09a6b30 (0xc09a6b30 = _mtx_lock_sleep+0x11c)
rsp=0xc0d62ce0 rfp=0xc0d62d10
r10=0xc0b47100 r9=0x00000000
r8=0x00000000 r7=0x00000000 r6=0xc0be1fa0 r5=0xc3556000
r4=0xc35dd974
_mtx_lock_sleep() at 0xc09a6a24 = _mtx_lock_sleep+0x10
scp=0xc09a6a24 rlv=0xc09a6c0c (0xc09a6c0c = _mtx_lock_flags+0x7c)
rsp=0xc0d62d14 rfp=0xc0d62d3c
r10=0xc0d62d70 r9=0xc09039a8
r8=0x00000000 r7=0x00000851 r6=0xc0b47100 r5=0x00000000
r4=0xc35dd974
_mtx_lock_flags() at 0xc09a6ba0 = _mtx_lock_flags+0x10
scp=0xc09a6ba0 rlv=0xc0903fac (0xc0903fac = xpt_sim_opened+0x17c)
rsp=0xc0d62d40 rfp=0xc0d62d68
r8=0xc0bde8f0 r7=0xc090d4a4
r6=0xc3765e00 r5=0xc0b47100 r4=0xc3766240
xpt_sim_opened() at 0xc0903f3c = xpt_sim_opened+0x10c
scp=0xc0903f3c rlv=0xc0904068 (0xc0904068 = xpt_sim_opened+0x238)
rsp=0xc0d62d6c rfp=0xc0d62d88
r10=0xc0bde904 r9=0xc0b47100
r8=0x00000000 r7=0xc090d4a4 r6=0x00000080 r5=0x00000000
r4=0x00000001
xpt_sim_opened() at 0xc0904048 = xpt_sim_opened+0x218
scp=0xc0904048 rlv=0xc0905940 (0xc0905940 = xpt_register_async+0xd0)
rsp=0xc0d62d8c rfp=0xc0d62e34
xpt_register_async() at 0xc0905880 = xpt_register_async+0x10
scp=0xc0905880 rlv=0xc090d484 (0xc090d484 = ata_get_xport+0x2198)
rsp=0xc0d62e38 rfp=0xc0d62e44
r10=0x00000000 r9=0x00000000
r8=0x005fffcc r7=0xc35593c0 r6=0xc0b62170 r5=0xc0be74d0
r4=0x0000001c
ata_get_xport() at 0xc090d474 = ata_get_xport+0x2188
scp=0xc090d474 rlv=0xc0900868 (0xc0900868 = periphdriver_init+0x60)
rsp=0xc0d62e48 rfp=0xc0d62e58
periphdriver_init() at 0xc0900818 = periphdriver_init+0x10
scp=0xc0900818 rlv=0xc0904584 (0xc0904584 = xpt_alloc_ccb+0x6c)
rsp=0xc0d62e5c rfp=0xc0d62e74
r4=0x00000000
xpt_alloc_ccb() at 0xc0904554 = xpt_alloc_ccb+0x3c
scp=0xc0904554 rlv=0xc09d2d9c (0xc09d2d9c = vaccess_acl_posix1e+0x628)
rsp=0xc0d62e78 rfp=0xc0d62ee0
r4=0x00000000
vaccess_acl_posix1e() at 0xc09d2d44 = vaccess_acl_posix1e+0x5d0
scp=0xc09d2d44 rlv=0xc097b0ec (0xc097b0ec = mi_startup+0xdc)
rsp=0xc0d62ee4 rfp=0xc0d62ef4
r7=0x00900040 r6=0x00000002
r5=0x0090004c r4=0xc0b7e88c
mi_startup() at 0xc097b020 = mi_startup+0x10
scp=0xc097b020 rlv=0xc09000e4 (0xc09000e4 = btext+0xe4)
rsp=0xc0d62ef8 rfp=0x00000000
r4=0x00900124
db> ps
pid ppid pgrp uid state wmesg wchan cmd
13 0 0 0 RL (threaded) [usb]
100021 RunQ [usbus0]
100020 RunQ [usbus0]
100019 RunQ [usbus0]
100018 RunQ [usbus0]
12 0 0 0 RL [yarrow]
4 0 0 0 RL [g_down]
3 0 0 0 RL [g_up]
2 0 0 0 RL [g_event]
11 0 0 0 WL (threaded) [intr]
100026 I [intr21: sata0]
100025 I [intr17: mge1]
100024 I [intr16: mge1]
100023 I [intr13: mge0]
100022 I [intr12: mge0]
100017 I [intr19: ehci0]
100016 I [swi0: uart uart]
100015 I [swi6: Giant taskq]
100013 I [swi5: +]
100011 I [swi2: cambio]
100010 I [swi6: task queue]
100005 I [swi1: netisr 0]
100004 I [swi4: clock]
100003 I [swi3: vm]
10 0 0 0 RL [idle]
1 0 0 0 ?L [kernel]
0 0 0 0 RLs (threaded) [kernel]
100014 RunQ [thread taskq]
100012 RunQ [kqueue taskq]
100000 L *fvH 0xc3556000 [swapper]
db> alltrace
Tracing command usb pid 13 tid 100021 td 0xc35ff480
Tracing command usb pid 13 tid 100020 td 0xc35ff6c0
Tracing command usb pid 13 tid 100019 td 0xc35ff900
Tracing command usb pid 13 tid 100018 td 0xc35ffb40
Tracing command yarrow pid 12 tid 100009 td 0xc35c2480
Tracing command g_down pid 4 tid 100008 td 0xc357b000
Tracing command g_up pid 3 tid 100007 td 0xc357b240
Tracing command g_event pid 2 tid 100006 td 0xc357b480
Tracing command intr pid 11 tid 100026 td 0xc35c2900
Tracing command intr pid 11 tid 100025 td 0xc35c2b40
Tracing command intr pid 11 tid 100024 td 0xc35c2d80
Tracing command intr pid 11 tid 100023 td 0xc35ff000
Tracing command intr pid 11 tid 100022 td 0xc35ff240
Tracing command intr pid 11 tid 100017 td 0xc357c240
Tracing command intr pid 11 tid 100016 td 0xc357c480
Tracing command intr pid 11 tid 100015 td 0xc357c6c0
Tracing command intr pid 11 tid 100013 td 0xc357cb40
Tracing command intr pid 11 tid 100011 td 0xc35c2000
Tracing command intr pid 11 tid 100010 td 0xc35c2240
Tracing command intr pid 11 tid 100005 td 0xc357b6c0
Tracing command intr pid 11 tid 100004 td 0xc357b900
Tracing command intr pid 11 tid 100003 td 0xc357bb40
Tracing command idle pid 10 tid 100002 td 0xc357bd80
Tracing command kernel pid 1 tid 100001 td 0xc357c000
Tracing command kernel pid 0 tid 100014 td 0xc357c900
Tracing command kernel pid 0 tid 100012 td 0xc357cd80
Tracing command kernel pid 0 tid 100000 td 0xc0be1fa0
kdb_enter() at 0xc09dcb18 = kdb_enter+0x10
scp=0xc09dcb18 rlv=0xc09b2cf0 (0xc09b2cf0 = panic+0xcc)
rsp=0xc0d62c1c rfp=0xc0d62c30
r4=0x00000100
panic() at 0xc09b2c38 = panic+0x14
scp=0xc09b2c38 rlv=0xc09a6fb8 (0xc09a6fb8 = _thread_lock_flags+0x170)
rsp=0xc0d62c44 rfp=0xc0d62c8c
_thread_lock_flags() at 0xc09a6e58 = _thread_lock_flags+0x10
scp=0xc09a6e58 rlv=0xc09e9e98 (0xc09e9e98 = turnstile_claim+0x174)
rsp=0xc0d62c90 rfp=0xc0d62cac
r10=0xc3556000 r9=0x00000000
r8=0xc3556000 r7=0x00000044 r6=0xc3556000 r5=0xc3766680
r4=0xc0b644c0
turnstile_claim() at 0xc09e9e40 = turnstile_claim+0x11c
scp=0xc09e9e40 rlv=0xc09ea17c (0xc09ea17c = turnstile_wait+0x208)
rsp=0xc0d62cb0 rfp=0xc0d62cdc
r7=0xc0be1fa0 r6=0xc0be8e40
r5=0xc0b644c0 r4=0x00000000
turnstile_wait() at 0xc09e9f84 = turnstile_wait+0x10
scp=0xc09e9f84 rlv=0xc09a6b30 (0xc09a6b30 = _mtx_lock_sleep+0x11c)
rsp=0xc0d62ce0 rfp=0xc0d62d10
r10=0xc0b47100 r9=0x00000000
r8=0x00000000 r7=0x00000000 r6=0xc0be1fa0 r5=0xc3556000
r4=0xc35dd974
_mtx_lock_sleep() at 0xc09a6a24 = _mtx_lock_sleep+0x10
scp=0xc09a6a24 rlv=0xc09a6c0c (0xc09a6c0c = _mtx_lock_flags+0x7c)
rsp=0xc0d62d14 rfp=0xc0d62d3c
r10=0xc0d62d70 r9=0xc09039a8
r8=0x00000000 r7=0x00000851 r6=0xc0b47100 r5=0x00000000
r4=0xc35dd974
_mtx_lock_flags() at 0xc09a6ba0 = _mtx_lock_flags+0x10
scp=0xc09a6ba0 rlv=0xc0903fac (0xc0903fac = xpt_sim_opened+0x17c)
rsp=0xc0d62d40 rfp=0xc0d62d68
r8=0xc0bde8f0 r7=0xc090d4a4
r6=0xc3765e00 r5=0xc0b47100 r4=0xc3766240
xpt_sim_opened() at 0xc0903f3c = xpt_sim_opened+0x10c
scp=0xc0903f3c rlv=0xc0904068 (0xc0904068 = xpt_sim_opened+0x238)
rsp=0xc0d62d6c rfp=0xc0d62d88
r10=0xc0bde904 r9=0xc0b47100
r8=0x00000000 r7=0xc090d4a4 r6=0x00000080 r5=0x00000000
r4=0x00000001
xpt_sim_opened() at 0xc0904048 = xpt_sim_opened+0x218
scp=0xc0904048 rlv=0xc0905940 (0xc0905940 = xpt_register_async+0xd0)
rsp=0xc0d62d8c rfp=0xc0d62e34
xpt_register_async() at 0xc0905880 = xpt_register_async+0x10
scp=0xc0905880 rlv=0xc090d484 (0xc090d484 = ata_get_xport+0x2198)
rsp=0xc0d62e38 rfp=0xc0d62e44
r10=0x00000000 r9=0x00000000
r8=0x005fffcc r7=0xc35593c0 r6=0xc0b62170 r5=0xc0be74d0
r4=0x0000001c
ata_get_xport() at 0xc090d474 = ata_get_xport+0x2188
scp=0xc090d474 rlv=0xc0900868 (0xc0900868 = periphdriver_init+0x60)
rsp=0xc0d62e48 rfp=0xc0d62e58
periphdriver_init() at 0xc0900818 = periphdriver_init+0x10
scp=0xc0900818 rlv=0xc0904584 (0xc0904584 = xpt_alloc_ccb+0x6c)
rsp=0xc0d62e5c rfp=0xc0d62e74
r4=0x00000000
xpt_alloc_ccb() at 0xc0904554 = xpt_alloc_ccb+0x3c
scp=0xc0904554 rlv=0xc09d2d9c (0xc09d2d9c = vaccess_acl_posix1e+0x628)
rsp=0xc0d62e78 rfp=0xc0d62ee0
r4=0x00000000
vaccess_acl_posix1e() at 0xc09d2d44 = vaccess_acl_posix1e+0x5d0
scp=0xc09d2d44 rlv=0xc097b0ec (0xc097b0ec = mi_startup+0xdc)
rsp=0xc0d62ee4 rfp=0xc0d62ef4
r7=0x00900040 r6=0x00000002
r5=0x0090004c r4=0xc0b7e88c
mi_startup() at 0xc097b020 = mi_startup+0x10
scp=0xc097b020 rlv=0xc09000e4 (0xc09000e4 = btext+0xe4)
rsp=0xc0d62ef8 rfp=0x00000000
r4=0x00900124
db> show lock 0xc0be3ad4
class: sleep mutex
name: Giant
flags: {DEF, RECURSE}
state: {OWNED}
owner: 0xc0be1fa0 (tid 100000, pid 0, "swapper")
db >
- - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
What you want to know? Plase teach me, I'll dump what you want.
More information about the freebsd-current
mailing list