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