[ag-automation] 2.6.29.6-rt23 - Locking API testsuite Fail

taejin kim tj7.kim at gmail.com
Tue Aug 18 07:16:00 CEST 2009


Our product is ASIC (application-specific integrated circuit) chip for
some purpose.
So, it is hard to get our chipset. ^^;
But I tried same test with well-known board, versatile. (Versatile
board has ARM926EJ CPU)
And I found same Error, the CONFIG_DEBUG_LOCKING_API_SELFTESTS hangs
at (double unlock)-(rlock) pair.


Test procedure:

1. Set kernel config
make versatile_defconfig
(It is arm kernel’s default value.)

2. Set Kernel hacking option for Locking API test
-*- Spinlock and rw-lock debugging: basic checks
-*- Lock debugging: detect incorrect freeing of live locks
[*] Lock debugging: prove locking correctness
[ ] Lock usage statistics
[ ] Lock dependency engine debugging
[ ] Spinlock debugging: sleep-inside-spinlock checking
[*] Locking API boot-time self-tests



Versatile's log:

Linux version 2.6.29.6-rt23 (taejin at eddy) (gcc version 4.2.2) #5
PREEMPT RT Tue Aug 18 12:06:00 KST 2009
CPU: ARM926EJ-S [41069263] revision 3 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: ARM-Versatile PB
Warning: bad configuration page, trying to continue
Memory policy: ECC disabled, Data cache writeback
On node 0 totalpages: 32768
free_area_init_node: node 0, pgdat c02fd584, node_mem_map c071b000
  Normal zone: 256 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 32512 pages, LIFO batch:7
Real-Time Preemption Support (C) 2004-2007 Ingo Molnar
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
Kernel command line: root=/dev/ram rw mem=128M console=ttyAMA0
Preemptible RCU implementation.
NR_IRQS:64
PID hash table entries: 512 (order: 9, 2048 bytes)
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: 2847 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!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 805 [#1] PREEMPT
Modules linked in:
CPU: 0    Not tainted  (2.6.29.6-rt23 #5)
PC is at __bug+0x20/0x2c
LR is at rt_up+0x4c/0x68
pc : [<c0025744>]    lr : [<c006885c>]    psr: 00000053
sp : c02ddf60  ip : c02dde90  fp : c02ddf6c
r10: 0001d030  r9 : 41069263  r8 : 0001d064
r7 : 00000002  r6 : 00000001  r5 : 00000000  r4 : c02f0418
r3 : 00000000  r2 : 00000001  r1 : 00000001  r0 : 00000022
Flags: nzcv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
Control: 0005317f  Table: 00004000  DAC: 00000017
Process swapper (pid: 0, stack limit = 0xc02dc260)
Stack: (0xc02ddf60 to 0xc02de000)
df60: c02ddf80 c02ddf70 c023c8a0 c0025734 c02f0418 c02ddf94 c02ddf84 c014f3c8
df80: c023c878 c014f3a0 c02ddfb4 c02ddf98 c014dfdc c014f3b0 c02fdde4 c02fde1c
dfa0: c02efdc8 c02e0394 c02ddfd0 c02ddfb8 c0150374 c014dfa8 c02fdde4 c02fde1c
dfc0: c001eee0 c02ddff4 c02ddfd4 c0008bb4 c014ffa0 c0008510 c001eee0 00053175
dfe0: c02fde78 c001f2e4 00000000 c02ddff8 00008034 c00089f0 00000000 00000000
Backtrace:
[<c0025724>] (__bug+0x0/0x2c) from [<c023c8a0>] (rt_read_unlock+0x38/0x5c)
[<c023c868>] (rt_read_unlock+0x0/0x5c) from [<c014f3c8>]
(double_unlock_rlock+0x28/0x30)
 r4:c02f0418
[<c014f3a0>] (double_unlock_rlock+0x0/0x30) from [<c014dfdc>]
(dotest+0x44/0x4d8)
 r4:c014f3a0
[<c014df98>] (dotest+0x0/0x4d8) from [<c0150374>] (locking_selftest+0x3e4/0x8ac)
 r7:c02e0394 r6:c02efdc8 r5:c02fde1c r4:c02fdde4
[<c014ff90>] (locking_selftest+0x0/0x8ac) from [<c0008bb4>]
(start_kernel+0x1d4/0x318)
 r6:c001eee0 r5:c02fde1c r4:c02fdde4
[<c00089e0>] (start_kernel+0x0/0x318) from [<00008034>] (0x8034)
 r6:c001f2e4 r5:c02fde78 r4:00053175
Code: e1a01000 e59f000c eb006adf e3a03000 (e5833000)
---[ end trace 1b75b31a2719ed1c ]---
Kernel panic - not syncing: Attempted to kill the idle task!
[<c0025d6c>] (dump_stack+0x0/0x14) from [<c003f3b8>] (panic+0x54/0x138)
[<c003f364>] (panic+0x0/0x138) from [<c0042460>] (do_exit+0x68/0x648)
 r3:00000000 r2:00000001 r1:00000001 r0:c029d7a4
[<c00423f8>] (do_exit+0x0/0x648) from [<c0025c70>] (die+0x1ac/0x1fc)
[<c0025ac4>] (die+0x0/0x1fc) from [<c00278cc>] (__do_kernel_fault+0x6c/0x7c)
[<c0027860>] (__do_kernel_fault+0x0/0x7c) from [<c0027b04>]
(do_page_fault+0x228/0x248)
 r7:c02ddf18 r6:c02df068 r5:c02e085c r4:ffffffff
[<c00278dc>] (do_page_fault+0x0/0x248) from [<c0027bc0>]
(do_translation_fault+0x18/0x80)
[<c0027ba8>] (do_translation_fault+0x0/0x80) from [<c0021240>]
(do_DataAbort+0x3c/0xa0)
 r4:ffffffff
[<c0021204>] (do_DataAbort+0x0/0xa0) from [<c0021a00>] (__dabt_svc+0x40/0x60)
Exception stack(0xc02ddf18 to 0xc02ddf60)
df00:                                                       00000022 00000001
df20: 00000001 00000000 c02f0418 00000000 00000001 00000002 0001d064 41069263
df40: 0001d030 c02ddf6c c02dde90 c02ddf60 c006885c c0025744 00000053 ffffffff
 r8:0001d064 r7:00000002 r6:00000001 r5:c02ddf4c r4:ffffffff
[<c0025724>] (__bug+0x0/0x2c) from [<c023c8a0>] (rt_read_unlock+0x38/0x5c)
[<c023c868>] (rt_read_unlock+0x0/0x5c) from [<c014f3c8>]
(double_unlock_rlock+0x28/0x30)
 r4:c02f0418
[<c014f3a0>] (double_unlock_rlock+0x0/0x30) from [<c014dfdc>]
(dotest+0x44/0x4d8)
 r4:c014f3a0
[<c014df98>] (dotest+0x0/0x4d8) from [<c0150374>] (locking_selftest+0x3e4/0x8ac)
 r7:c02e0394 r6:c02efdc8 r5:c02fde1c r4:c02fdde4
[<c014ff90>] (locking_selftest+0x0/0x8ac) from [<c0008bb4>]
(start_kernel+0x1d4/0x318)
 r6:c001eee0 r5:c02fde1c r4:c02fdde4
[<c00089e0>] (start_kernel+0x0/0x318) from [<00008034>] (0x8034)
 r6:c001f2e4 r5:c02fde78 r4:00053175

thank you
taejin


2009/8/17 Robert Schwebel <r.schwebel at pengutronix.de>:
> On Mon, Aug 17, 2009 at 09:29:50AM +0900, taejin kim wrote:
>> Our SOC chip has ARM1136j-s(ARMv6) CPU.
>
> It would be helpful to know which product you have, in order to try to
> reproduce it.
>
> rsc
> --
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
>



More information about the ag-automation mailing list