Re: Locking test suite (CONFIG_DEBUG_LOCKING_API_SELFTESTS) crash on 2.6.29.4-rt16-omap1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Argh, sorry, I meant CONFIG_DEBUG_LOCKING_API_SELFTESTS not
CONFIG_PROVE_LOCKING!!
Not sure how I made that mistake; not enough coffee...

If I'm reading that log correctly, something is wrong with
double-unlock handling in rlocks. And it's something new since -rt6.
Any ideas?

On Wed, Jun 3, 2009 at 2:34 PM, Hugo Vincent <hugo.vincent@xxxxxxxxx> wrote:
> On a OMAP3503 (Gumstix Overo) I see a rather nasty-looking crash early
> in bootup, that is triggered by CONFIG_PROVE_LOCKING. The same config
> minus CONFIG_PROVE_LOCKING doesn't crash, and seems to work correctly
> in use. This kernel and similar config worked and passed the
> PROVE_LOCKING test last time I checked it, which would have been
> shortly after -rt6 was released.
>
> Kernel config attached.
>
> Here is the bootup log:
>
> <5>Linux version 2.6.29.4-rt16-omap1 (hugo@hugo) (gcc version 4.3.3
> (GCC) ) #1 PREEMPT RT Wed Jun 3 14:22:13 NZST 2009
> CPU: ARMv7 Processor [411fc082] revision 2 (ARMv7), cr=10c5387f
> CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
> Machine: Gumstix Overo
> Memory policy: ECC disabled, Data cache writeback
> <7>On node 0 totalpages: 65536
> <7>free_area_init_node: node 0, pgdat c042d8a4, node_mem_map c0874000
> <7>  Normal zone: 512 pages used for memmap
> <7>  Normal zone: 0 pages reserved
> <7>  Normal zone: 65024 pages, LIFO batch:15
> <6>OMAP3430 ES2.1
> <6>SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000
> Real-Time Preemption Support (C) 2004-2007 Ingo Molnar
> Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
> <5>Kernel command line: console=ttyS6,115200n8 root=/dev/mmcblk0p2 rw
> rootfstype=ext3 rootwait
> <5>Preemptible RCU implementation.
> <6>NR_IRQS:402
> <6>Clocking rate (Crystal/DPLL/ARM core): 26.0/331/600 MHz
> <6>GPMC revision 5.0
> <6>IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts
> <6>Total of 96 interrupts on 1 active controller
> <6>OMAP34xx GPIO hardware version 2.5
> PID hash table entries: 1024 (order: 10, 4096 bytes)
> <6>OMAP clockevent source: GPTIMER1 at 13000000 Hz
> Console: colour dummy device 80x30
> Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
> ... MAX_LOCKDEP_SUBCLASSES:  8
> ... MAX_LOCK_DEPTH:          48
> ... MAX_LOCKDEP_KEYS:        8191
> ... CLASSHASH_SIZE:          4096
> ... MAX_LOCKDEP_ENTRIES:     8192
> ... MAX_LOCKDEP_CHAINS:      16384
> ... CHAINHASH_SIZE:          8192
>  memory used by lock dependency info: 2911 kB
>  per task-struct memory footprint: 1152 bytes
> ------------------------
> | Locking API testsuite:
> ----------------------------------------------------------------------------
>                                 | spin |wlock |rlock |mutex | wsem | rsem |
>  --------------------------------------------------------------------------
>                     A-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
>                 A-B-B-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
>             A-B-B-C-C-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
>             A-B-C-A-B-C deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
>         A-B-B-C-C-D-D-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
>         A-B-C-D-B-D-D-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
>         A-B-C-D-B-C-D-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
>                    double unlock:  ok  |  ok  |<2>kernel BUG at
> kernel/rt.c:257!
> <1>Unable to handle kernel NULL pointer dereference at virtual address 00000000
> <1>pgd = c0004000
> <1>[00000000] *pgd=00000000
> Internal error: Oops: 805 [#1] PREEMPT
> Modules linked in:
> CPU: 0    Not tainted  (2.6.29.4-rt16-omap1 #1)
> PC is at __bug+0x20/0x2c
> LR is at rt_up+0x48/0x64
> pc : [<c002c214>]    lr : [<c007d11c>]    psr: 00000153
> sp : c03e9f40  ip : c03e9e68  fp : c03e9f4c
> r10: 0000001f  r9 : 411fc082  r8 : 00000001
> r7 : 00000002  r6 : 00000001  r5 : 00000000  r4 : c041c8b0
> r3 : 00000000  r2 : 00000001  r1 : 00000001  r0 : 00000022
> Flags: nzcv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
> Control: 10c5387f  Table: 80004019  DAC: 00000017
> Process swapper (pid: 0, stack limit = 0xc03e82f0)
> Stack: (0xc03e9f40 to 0xc03ea000)
> 9f40: c03e9f64 c03e9f50 c02f8e50 c002c200 c041c8b0 c041c8b0 c03e9f7c c03e9f68
> 9f60: c01c4a58 c02f8e20 c03e9f58 c01c4a2c c03e9fa4 c03e9f80 c01c2d5c c01c4a38
> 9f80: c02f61f8 c042e650 c042e644 c041c008 c03ecd58 80023094 c03e9fc4 c03e9fa8
> 9fa0: c01c35e8 c01c2d18 c03929ef c042e650 c042e644 c0024d58 c03e9ff4 c03e9fc8
> 9fc0: c0008b1c c01c320c c00086c4 00000000 00000000 c0024d58 00000000 10c5387d
> 9fe0: c042e6c0 c002515c 00000000 c03e9ff8 80008034 c0008974 00000000 00000000
> Backtrace:
> [<c002c1f4>] (__bug+0x0/0x2c) from [<c02f8e50>] (rt_read_unlock+0x3c/0x5c)
> [<c02f8e14>] (rt_read_unlock+0x0/0x5c) from [<c01c4a58>]
> (double_unlock_rlock+0x2c/0x34)
>  r4:c041c8b0
> [<c01c4a2c>] (double_unlock_rlock+0x0/0x34) from [<c01c2d5c>]
> (dotest+0x50/0x4f4)
>  r4:c01c4a2c
> [<c01c2d0c>] (dotest+0x0/0x4f4) from [<c01c35e8>] (locking_selftest+0x3e8/0x8b0)
>  r8:80023094 r7:c03ecd58 r6:c041c008 r5:c042e644 r4:c042e650
> [<c01c3200>] (locking_selftest+0x0/0x8b0) from [<c0008b1c>]
> (start_kernel+0x1b4/0x294)
>  r6:c0024d58 r5:c042e644 r4:c042e650
> [<c0008968>] (start_kernel+0x0/0x294) from [<80008034>] (0x80008034)
>  r6:c002515c r5:c042e6c0 r4:10c5387d
> Code: e1a01000 e59f000c eb0b27f2 e3a03000 (e5833000)
> <4>---[ end trace 1b75b31a2719ed1c ]---
> <0>Kernel panic - not syncing: Attempted to kill the idle task!
> [<c02f609c>] (dump_stack+0x0/0x14) from [<c02f60f4>] (panic+0x44/0x12c)
> [<c02f60b0>] (panic+0x0/0x12c) from [<c00536cc>] (do_exit+0x70/0x764)
>  r3:00000000 r2:c03e8000 r1:00000001 r0:c0390942
> [<c005365c>] (do_exit+0x0/0x764) from [<c002c74c>] (die+0x2a4/0x304)
> [<c002c4a8>] (die+0x0/0x304) from [<c002e068>] (__do_kernel_fault+0x6c/0x7c)
> [<c002dffc>] (__do_kernel_fault+0x0/0x7c) from [<c002e2b8>]
> (do_page_fault+0x240/0x260)
>  r7:c03e9ef8 r6:00000805 r5:c03eb0c8 r4:ffffffff
> [<c002e078>] (do_page_fault+0x0/0x260) from [<c002e37c>]
> (do_translation_fault+0x18/0x7c)
> [<c002e364>] (do_translation_fault+0x0/0x7c) from [<c00281fc>]
> (do_DataAbort+0x38/0x9c)
>  r7:c03e9ef8 r6:00000805 r5:c03ed150 r4:ffffffff
> [<c00281c4>] (do_DataAbort+0x0/0x9c) from [<c0028a2c>] (__dabt_svc+0x4c/0x60)
> Exception stack(0xc03e9ef8 to 0xc03e9f40)
> 9ee0:                                                       00000022 00000001
> 9f00: 00000001 00000000 c041c8b0 00000000 00000001 00000002 00000001 411fc082
> 9f20: 0000001f c03e9f4c c03e9e68 c03e9f40 c007d11c c002c214 00000153 ffffffff
>  r8:00000001 r7:00000002 r6:00000001 r5:c03e9f2c r4:ffffffff
> [<c002c1f4>] (__bug+0x0/0x2c) from [<c02f8e50>] (rt_read_unlock+0x3c/0x5c)
> [<c02f8e14>] (rt_read_unlock+0x0/0x5c) from [<c01c4a58>]
> (double_unlock_rlock+0x2c/0x34)
>  r4:c041c8b0
> [<c01c4a2c>] (double_unlock_rlock+0x0/0x34) from [<c01c2d5c>]
> (dotest+0x50/0x4f4)
>  r4:c01c4a2c
> [<c01c2d0c>] (dotest+0x0/0x4f4) from [<c01c35e8>] (locking_selftest+0x3e8/0x8b0)
>  r8:80023094 r7:c03ecd58 r6:c041c008 r5:c042e644 r4:c042e650
> [<c01c3200>] (locking_selftest+0x0/0x8b0) from [<c0008b1c>]
> (start_kernel+0x1b4/0x294)
>  r6:c0024d58 r5:c042e644 r4:c042e650
> [<c0008968>] (start_kernel+0x0/0x294) from [<80008034>] (0x80008034)
>  r6:c002515c r5:c042e6c0 r4:10c5387d
>
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux