From owner-freebsd-arm@FreeBSD.ORG Wed Feb 17 17:39:47 2010 Return-Path: Delivered-To: freebsd-arm@FreeBSD.org Received: from hub.freebsd.org (localhost [127.0.0.1]) by hub.freebsd.org (Postfix) with ESMTP id 4BAAA106566B; Wed, 17 Feb 2010 17:39:46 +0000 (UTC) (envelope-from nork@FreeBSD.org) Date: Thu, 18 Feb 2010 02:39:45 +0900 From: Norikatsu Shigemura To: mav@FreeBSD.org, freebsd-arm@FreeBSD.org Message-Id: <20100218023945.848cd01a.nork@FreeBSD.org> X-Mailer: Sylpheed 2.7.1 (GTK+ 2.18.5; i386-portbld-freebsd8.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: freebsd-current@FreeBSD.org, Norikatsu Shigemura Subject: ATA_CAM-ed mvsata(4) on OpenRD-client X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Feb 2010 17:39:47 -0000 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: at mem 0xf1080000-0xf1085fff irq 21 on mbus0 sata0: [MPSAFE] sata0: [ITHREAD] ata0: on sata0 ata0: [MPSAFE] ata0: [ITHREAD] ata1: 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.