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>