Re: [boot crash #2] Re: [GIT PULL] SLAB changes for v2.6.39-rc1

From: Ingo Molnar
Date: Thu Mar 24 2011 - 15:23:16 EST



* Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:

> On Thu, 24 Mar 2011, Ingo Molnar wrote:
> > RIP: 0010:[<ffffffff810570a9>] [<ffffffff810570a9>] get_next_timer_interrupt+0x119/0x260
>
> That's a typical timer crash, but you were unable to debug it with
> debugobjects because commit d3f661d6 broke those.
>
> Christoph, debugobjects do not need to run with interupts
> disabled. And just because they were in that section to keep all the
> debug stuff together does not make an excuse for not looking at the
> code and just slopping it into some totally unrelated ifdef along with
> a completely bogus comment.
>
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> ---
> mm/slub.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> Index: linux-2.6/mm/slub.c
> ===================================================================
> --- linux-2.6.orig/mm/slub.c
> +++ linux-2.6/mm/slub.c
> @@ -849,11 +849,11 @@ static inline void slab_free_hook(struct
> local_irq_save(flags);
> kmemcheck_slab_free(s, x, s->objsize);
> debug_check_no_locks_freed(x, s->objsize);
> - if (!(s->flags & SLAB_DEBUG_OBJECTS))
> - debug_check_no_obj_freed(x, s->objsize);
> local_irq_restore(flags);
> }
> #endif
> + if (!(s->flags & SLAB_DEBUG_OBJECTS))
> + debug_check_no_obj_freed(x, s->objsize);

Thanks, this did the trick!

Tested-by: Ingo Molnar <mingo@xxxxxxx>

With this fix i got the warning below - pinpointing a net/bluetooth/hci_core.c
timer bug.

Thanks,

Ingo

------------[ cut here ]------------
WARNING: at lib/debugobjects.c:262 debug_print_object+0x8e/0xb0()
Hardware name: System Product Name
ODEBUG: free active (active state 0) object type: timer_list hint: hci_cmd_timer+0x0/0x60
Pid: 2076, comm: dmsetup Not tainted 2.6.38-tip-09251-ged68fd8-dirty #110378
Call Trace:
[<ffffffff8104703a>] warn_slowpath_common+0x7a/0xb0
[<ffffffff810470e6>] warn_slowpath_fmt+0x46/0x50
[<ffffffff812d3eee>] debug_print_object+0x8e/0xb0
[<ffffffff81bee870>] ? bt_sock_wait_state+0x150/0x150
[<ffffffff812d4b15>] debug_check_no_obj_freed+0x125/0x230
[<ffffffff810f1173>] ? check_object+0xb3/0x2b0
[<ffffffff81bfad56>] ? bt_host_release+0x16/0x20
[<ffffffff81bfad56>] ? bt_host_release+0x16/0x20
[<ffffffff810f373c>] kfree+0x14c/0x190
[<ffffffff81bfad56>] bt_host_release+0x16/0x20
[<ffffffff813a1b87>] device_release+0x27/0xa0
[<ffffffff812c53bc>] kobject_release+0x4c/0xa0
[<ffffffff812c5370>] ? kobject_del+0x40/0x40
[<ffffffff812c6416>] kref_put+0x36/0x70
[<ffffffff812c4f57>] kobject_put+0x27/0x60
[<ffffffff813a2477>] put_device+0x17/0x20
[<ffffffff81bf0549>] hci_free_dev+0x29/0x30
[<ffffffff8193ed16>] vhci_release+0x36/0x70
[<ffffffff810fb4f6>] fput+0xd6/0x1f0
[<ffffffff810f9176>] filp_close+0x66/0x90
[<ffffffff810f9239>] sys_close+0x99/0xf0
[<ffffffff81d63dab>] system_call_fastpath+0x16/0x1b
---[ end trace ea6ca6434ee730b9 ]---
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/