[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130223013011.GA9484@localhost>
Date: Sat, 23 Feb 2013 09:30:11 +0800
From: Fengguang Wu <fengguang.wu@...el.com>
To: fengguang.wu@...el.com, Johannes Weiner <hannes@...xchg.org>
Cc: Tejun Heo <tj@...nel.org>, linux-kernel@...r.kernel.org
Subject: [idr/perf_init_event] BUG: unable to handle kernel NULL pointer
dereference at (null)
Greetings,
I got the below dmesg and the first bad commit is
commit f5947173c082a04a9804bb42a91a0f5df5ee0527
Author: Tejun Heo <tj@...nel.org>
Date: Wed Feb 20 02:05:52 2013 +0000
idr: implement lookup hint
While idr lookup isn't a particularly heavy operation, it still is too
substantial to use in hot paths without worrying about the performance
implications. With recent changes, each idr_layer covers 256 slots
which should be enough to cover most use cases with single idr_layer
making lookup hint very attractive.
This patch adds idr->hint which points to the idr_layer which
allocated an ID most recently and the fast path lookup becomes
if (look up target's prefix matches that of the hinted layer)
return hint->ary[ID's offset in the leaf layer];
which can be inlined.
idr->hint is set to the leaf node on idr_fill_slot() and cleared from
free_layer().
Signed-off-by: Tejun Heo <tj@...nel.org>
Signed-off-by: Andrew Morton <akpm@...ux-foundation.org>
[ 1.785897] remote IPI: ok |
[ 1.786928] local IPI:
[ 3.681214] BUG: unable to handle kernel NULL pointer dereference at (null)
[ 3.683277] IP: [<ffffffff81141a8c>] perf_init_event+0x43/0xf7
[ 3.684000] PGD 0
[ 3.684000] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
[ 3.684000] Modules linked in:
[ 3.684000] CPU 0
[ 3.684000] Pid: 11, comm: watchdog/0 Not tainted 3.8.0-mm1-00712-ge5b1dc6 #164 Bochs Bochs
[ 3.684000] RIP: 0010:[<ffffffff81141a8c>] [<ffffffff81141a8c>] perf_init_event+0x43/0xf7
[ 3.684000] RSP: 0000:ffff88001d6e3cc8 EFLAGS: 00000246
[ 3.684000] RAX: 0000000000000000 RBX: ffffffff83c60370 RCX: 0000000000436017
[ 3.684000] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000246
[ 3.684000] RBP: ffff88001d6e3cf8 R08: 0000000000000001 R09: 0000000000000000
[ 3.684000] R10: ffffffff83c51bf0 R11: ffff88001e20a000 R12: ffff88001d6d2800
[ 3.684000] R13: 0000000000000000 R14: ffff88001d6d2800 R15: ffffffff83c51270
[ 3.684000] FS: 0000000000000000(0000) GS:ffff88001e200000(0000) knlGS:0000000000000000
[ 3.684000] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 3.684000] CR2: 0000000000000000 CR3: 0000000003c15000 CR4: 00000000000006f0
[ 3.684000] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 3.684000] DR3: 0000000000000000 DR6: 0000000000000000 DR7: 0000000000000000
[ 3.684000] Process watchdog/0 (pid: 11, threadinfo ffff88001d6e2000, task ffff88001d6e42c0)
[ 3.684000] Stack:
[ 3.684000] ffff88001d6e3cf8 ffffffff810bc566 ffff88001d6d2bc8 ffffffff83c60370
[ 3.684000] 0000000000000000 0000000000000000 ffff88001d6e3d48 ffffffff81141da7
[ 3.684000] ffffffff8110dc69 000000001e3d5700 ffff88001d6e3d28 0000000000000000
[ 3.684000] Call Trace:
[ 3.684000] [<ffffffff810bc566>] ? __mutex_init+0x57/0x5f
[ 3.684000] [<ffffffff81141da7>] perf_event_alloc+0x267/0x397
[ 3.684000] [<ffffffff8110dc69>] ? touch_nmi_watchdog+0x5f/0x5f
[ 3.684000] [<ffffffff81142170>] perf_event_create_kernel_counter+0x26/0xce
[ 3.684000] [<ffffffff8110ddcc>] watchdog_enable+0xaf/0x1a4
[ 3.684000] [<ffffffff82c4d06f>] ? __schedule+0x5a5/0x5ee
[ 3.684000] [<ffffffff810c11e1>] smpboot_thread_fn+0x135/0x1b4
[ 3.684000] [<ffffffff810c10ac>] ? smpboot_register_percpu_thread+0xb7/0xb7
[ 3.684000] [<ffffffff810c10ac>] ? smpboot_register_percpu_thread+0xb7/0xb7
[ 3.684000] [<ffffffff810b9b6c>] kthread+0xb1/0xb9
[ 3.684000] [<ffffffff82c4d1d5>] ? __wait_for_common+0xb8/0x107
[ 3.684000] [<ffffffff810b9abb>] ? __kthread_parkme+0x65/0x65
[ 3.684000] [<ffffffff82c55cec>] ret_from_fork+0x7c/0xb0
[ 3.684000] [<ffffffff810b9abb>] ? __kthread_parkme+0x65/0x65
[ 3.684000] Code: eb c5 f7 ff 48 c7 c7 50 cc d0 84 41 89 c5 e8 c6 9d ff ff e8 ea 9d ff ff 41 8b b4 24 a0 00 00 00 48 8b 05 b8 af bc 03 89 f2 30 d2 <3b> 10 75 0f 40 0f b6 f6 48 83 c6 04 48 8b 5c f0 08 eb 0f 48 c7
[ 3.684000] RIP [<ffffffff81141a8c>] perf_init_event+0x43/0xf7
[ 3.684000] RSP <ffff88001d6e3cc8>
[ 3.684000] CR2: 0000000000000000
[ 3.688499] ---[ end trace 06ac4849e4c65ddd ]---
git bisect start e5b1dc669978ba463dd249dab23eef98b12c0b05 cafc49b041ba642a05e4b228f892282033c97f9b --
git bisect good 597219aec6c138b9c78c764b63c94ccfe191dbc9 # 22 2013-02-20 16:32:26 hfsplus: rework functionality of getting, setting and deleting of extended attributes
git bisect bad 04cf02b90d290691a5e10d17676300b6cb5ab29f # 0 2013-02-20 16:42:51 ipmi: remove superfluous kernel/userspace explanation
git bisect good 08833a200e79cc3b8b9193df4daf037f5155539a # 20 2013-02-20 17:09:56 firewire: convert to idr_alloc()
git bisect good 740bd30ffc9f03f4c58d784e08a54159ae0f60aa # 22 2013-02-20 17:41:46 ppp: convert to idr_alloc()
git bisect good eb29f6e97e62b450609ce301113c1749062769c6 # 22 2013-02-20 18:13:15 ipc-convert-to-idr_alloc-fix
git bisect good 653cc8e56dfc804e1e8a3dbeff24a3d20aa9d41e # 24 2013-02-20 18:45:17 idr: fix top layer handling
git bisect good 5c95ffae5c6cc2242e1f65d0164e0223574653bc # 20 2013-02-20 19:21:46 idr: make idr_layer larger
git bisect bad f5947173c082a04a9804bb42a91a0f5df5ee0527 # 0 2013-02-20 19:32:22 idr: implement lookup hint
git bisect good 7fdabbedd65764b9876f1fefa43609f5ec48c023 # 21 2013-02-20 20:00:41 idr: add idr_layer->prefix
git bisect good 7fdabbedd65764b9876f1fefa43609f5ec48c023 # 61 2013-02-20 21:13:41 idr: add idr_layer->prefix
git bisect bad e5b1dc669978ba463dd249dab23eef98b12c0b05 # 0 2013-02-20 21:24:07 add a refcount check in dput()
git bisect bad e462f39a9cf3efd63c7bf15d633470bb90966485 # 0 2013-02-20 21:28:11 Revert "add a refcount check in dput()"
git bisect bad 28df63a83ff0a216902f6c8f90afb0b1f0fa8373 # 0 2013-02-20 21:49:08 Add linux-next specific files for 20130220
Thanks,
Fengguang
View attachment "dmesg-kvm-ant-6584-2013-02-20-10-52-25-3.8.0-mm1-00712-ge5b1dc6-164" of type "text/plain" (25176 bytes)
View attachment "e5b1dc6-bisect.log" of type "text/plain" (7428 bytes)
View attachment ".config-bisect" of type "text/plain" (129187 bytes)
Powered by blists - more mailing lists