Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Aug 2006 13:12:10 +0200
From:      Olivier Houchard <mlfbsd@ci0.org>
To:        Bernd Walter <ticso@cicely.de>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: Sleeping thread (tid 100017, pid 27) owns a non-sleepable lock
Message-ID:  <20060825111209.GA59325@ci0.org>
In-Reply-To: <20060825093816.GD49178@cicely12.cicely.de>
References:  <20060825093816.GD49178@cicely12.cicely.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Aug 25, 2006 at 11:38:17AM +0200, Bernd Walter wrote:
> >e 0x20000000
> KDB: debugger backends: ddb
> KDB: current backend: ddb
> Copyright (c) 1992-2006 The FreeBSD Project.
> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
>         The Regents of the University of California. All rights reserved.
> FreeBSD 7.0-CURRENT #41: Fri Aug 25 11:29:00 CEST 2006
>     ticso@cicely7.cicely.de:/FreeBSD-arm-src/src/sys/arm/compile/BWCT
> CPU: ARM920T rev 0 (ARM9TDMI core)
>   DC enabled IC enabled WB enabled LABT
>   16KB/32B 64-way Instruction cache
>   16KB/32B 64-way write-back-locking-A Data cache
> real memory  = 67108864 (64 MB)
> avail memory = 62603264 (59 MB)
> CONFIG: invalid hint 'hint.ohci.at=apb'
> CONFIG: invalid hint 'hint.ohci.maddr=0x00300000'
> atmelarm0: <AT91RM9200 device bus> on motherboard
> at91_st0: <ST> mem 0xfffffd00-0xfffffdff irq 1 on atmelarm0
> at91_st0: watchdog registered, timeout intervall max. 64 sec
> at91_pio0: <PIOA> mem 0xfffff400-0xfffff5ff irq 1 on atmelarm0
> at91_pio0: ABSR: 0x60 OSR: 0 PSR:0x3f380010 ODSR: 0
> at91_pio0: [FAST]
> at91_pio1: <PIOB> mem 0xfffff600-0xfffff7ff irq 1 on atmelarm0
> at91_pio1: ABSR: 0xff300 OSR: 0 PSR:0x3fc00cff ODSR: 0
> at91_pio1: [FAST]
> at91_pio2: <PIOC> mem 0xfffff800-0xfffff9ff irq 1 on atmelarm0
> at91_pio2: ABSR: 0 OSR: 0x400 PSR:0xc47f ODSR: 0
> at91_pio2: [FAST]
> at91_pio3: <PIOD> mem 0xfffffa00-0xfffffbff irq 1 on atmelarm0
> at91_pio3: ABSR: 0 OSR: 0 PSR:0xfffffff ODSR: 0
> at91_pio3: [FAST]
> at91_pmc0: <PMC> mem 0xfffffc00-0xfffffcff irq 1 on atmelarm0
> at91_pmc0: main clock: 10000000 Hz PLLA: 112 MHz CPU: 112 MHz main 37 MHz
> at91_rtc0: <RTC> mem 0xfffffe00-0xfffffeff irq 1 on atmelarm0
> at91_rtc0: [FAST]
> ate0: <EMAC> mem 0xfffbc000-0xfffbffff irq 24 on atmelarm0
> miibus0: <MII bus> on ate0
> rlswitch0: <RTL8305SC 10/100 802.1q switch> on miibus0
> rlswitch0:  100baseTX-FDX
> rlswitch1: <RTL8305SC 10/100 802.1q switch> on miibus0
> rlswitch1: ignoring this PHY, non-zero instance
> device_attach: rlswitch1 attach returned 6
> rlswitch2: <RTL8305SC 10/100 802.1q switch> on miibus0
> rlswitch2: ignoring this PHY, non-zero instance
> device_attach: rlswitch2 attach returned 6
> rlswitch3: <RTL8305SC 10/100 802.1q switch> on miibus0
> rlswitch3: ignoring this PHY, non-zero instance
> device_attach: rlswitch3 attach returned 6
> rlswitch4: <RTL8305SC 10/100 802.1q switch> on miibus0
> rlswitch4: ignoring this PHY, non-zero instance
> device_attach: rlswitch4 attach returned 6
> rlswitch5: <RTL8305SC 10/100 802.1q switch> on miibus0
> rlswitch5: ignoring this PHY, non-zero instance
> device_attach: rlswitch5 attach returned 6
> ate0: Ethernet address: 00:0e:42:02:00:1f
> uart0: <DBGU> mem 0xfffff200-0xfffff3ff irq 1 on atmelarm0
> uart0: [FAST]?uart0: console (115200,n,8,1)
> uart1: <USART0> mem 0xfffc0000-0xfffc3fff irq 6 on atmelarm0
> uart1: [FAST]
> uart2: <USART1> mem 0xfffc4000-0xfffc7fff irq 7 on atmelarm0
> uart2: [FAST]
> uart3: <USART2> mem 0xfffc8000-0xfffcbfff irq 8 on atmelarm0
> uart3: [FAST]
> uart4: <USART3> mem 0xfffcc000-0xfffcffff irq 9 on atmelarm0
> uart4: [FAST]
> Cannot get 100 Hz clock; using 128Hz
> at91_st0: [FAST]
> Timecounter "AT91RM9200 timer" frequency 32768 Hz quality 1000
> Timecounters tick every 7.812 msec
> Sending DHCP Discover packet from interface ate0 (00:0e:42:02:00:1f)
> Received DHCP Offer packet on ate0 from 10.1.1.7 (accepted) (no root path)
> Sending DHCP Request packet from interface ate0 (00:0e:42:02:00:1f)
> Received DHCP Ack packet on ate0 from 10.1.1.7 (accepted) (got root path)
> ate0 at 10.1.1.4 server 10.1.1.7 server name cicely11.cicely.de boot file pxeboot
> subnet mask 255.255.255.0 router 10.1.1.8 rootfs 10.1.1.8:/var/d6/arm-boot/ 
> Adjusted interface ate0
> Trying to mount root from nfs:
> NFS ROOT: 10.1.1.8:/var/d6/arm-boot/
> Interface ate0 IP-Address 10.1.1.4 Broadcast 10.1.1.255 
> Sleeping thread (tid 100017, pid 27) owns a non-sleepable lock
> sched_switch() at sched_switch+0x10
> scp=0xc0060e70 rlv=0xc0052600 (mi_switch+0x220)
>         rsp=0xc52998b4 rfp=0xc52998e8
>         r7=0xc078e700 r6=0xc0794068
>         r5=0xc01ca3c8 r4=0x00000000
> mi_switch() at mi_switch+0x10
> scp=0xc00523f0 rlv=0xc0072760 (sleepq_set_timeout+0x27c)
>         rsp=0xc52998ec rfp=0xc5299900
>         r10=0x73657000 r9=0x00000001
>         r8=0xc5299a18 r7=0xc078e700 r6=0xc0794068 r5=0xc01ca3c8
>         r4=0xc078e700
> sleepq_set_timeout() at sleepq_set_timeout+0x204
> scp=0xc00726e8 rlv=0xc0072870 (sleepq_wait+0x30)
>         rsp=0xc5299904 rfp=0xc5299918
>         r4=0xc0794068
> sleepq_wait() at sleepq_wait+0x10
> scp=0xc0072850 rlv=0xc0024a24 (cv_wait_unlock+0xe4)
>         rsp=0xc529991c rfp=0xc5299938
>         r4=0x00000000
> cv_wait_unlock() at cv_wait_unlock+0x10
> scp=0xc0024950 rlv=0xc0024920 (cv_wait+0x34)
>         rsp=0xc529993c rfp=0xc5299950
>         r7=0xc078e700 r6=0xc0794000
>         r5=0xc01ca3c8 r4=0x00000000
> cv_wait() at cv_wait+0x10
> scp=0xc00248fc rlv=0xc0051b34 (_sx_xlock+0x4c)
>         rsp=0xc5299954 rfp=0xc5299968
>         r5=0x00000001 r4=0xc0794044
> _sx_xlock() at _sx_xlock+0x10
> scp=0xc0051af8 rlv=0xc013c990 (_vm_map_lock_read+0x40)
>         rsp=0xc529996c rfp=0xc5299978
>         r4=0x00000001
> _vm_map_lock_read() at _vm_map_lock_read+0x10
> scp=0xc013c960 rlv=0xc0140540 (vm_map_lookup+0x3c)
>         rsp=0xc529997c rfp=0xc52999a8
> vm_map_lookup() at vm_map_lookup+0x10
> scp=0xc0140514 rlv=0xc01387b4 (vm_fault+0xb8)
>         rsp=0xc52999ac rfp=0xc5299a90
>         r10=0xc5299ef8 r9=0xc5299b34
>         r8=0x00000000 r7=0xc078e700 r6=0x73657000 r5=0x00000001
>         r4=0xc52999c4
> vm_fault() at vm_fault+0x10
> scp=0xc013870c rlv=0xc015d1f0 (data_abort_handler+0x3b4)
>         rsp=0xc5299a94 rfp=0xc5299b30
>         r10=0xc5299ef8 r9=0xc5299b34
>         r8=0x00000000 r7=0xc078e700 r6=0x73657000 r5=0x00000000
>         r4=0xc07ba728
> data_abort_handler() at data_abort_handler+0x10
> scp=0xc015ce4c rlv=0xc0152bb0 (address_exception_entry+0x50)
>         rsp=0xc5299b34 rfp=0xc5299ba4
>         r10=0xc01e079c r9=0xc078e700
>         r8=0x00100000 r7=0xc07cf000 r6=0xc07ce200 r5=0xe0000004
>         r4=0x73657264
> intr_event_schedule_thread() at intr_event_schedule_thread+0x10
> scp=0xc0037b20 rlv=0xc0037d1c (swi_sched+0x38)
>         rsp=0xc5299ba8 rfp=0xc5299bb4
>         r5=0xc07cf000 r4=0xc5299bc0

Here, something is deadly wrong. You get a page fault while scheduling the
interrupt. Most likely something writes where it shouldn't and corrupts the
ithread structures, or you're mixing INTR_FAST and non-INTR_FAST drivers, but
reading at your dmesg it doesn't seem so.
Can you reproduce it, or does it just happen randomly ?

Olivier



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