Messages in this thread | | | Date | Sat, 6 Dec 2014 23:14:41 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: frequent lockups in 3.18rc4 |
| |
On Sat, 6 Dec 2014, Chuck Ebbert wrote: > On Fri, 5 Dec 2014 13:48:08 -0500 > Dave Jones <davej@redhat.com> wrote: > > > [ 1611.749570] [<ffffffff81007948>] do_nmi+0xb8/0xf0 > > [ 1611.750438] [<ffffffff8179dd2a>] end_repeat_nmi+0x1e/0x2e > > [ 1611.751312] [<ffffffff810a12c8>] ? preempt_count_add+0x18/0xb0 > > [ 1611.752177] [<ffffffff810a12c8>] ? preempt_count_add+0x18/0xb0 > > [ 1611.753025] [<ffffffff810a12c8>] ? preempt_count_add+0x18/0xb0 > > [ 1611.753861] <<EOE>> [<ffffffff810fee07>] is_module_text_address+0x17/0x50 > > [ 1611.754734] [<ffffffff81092ab8>] __kernel_text_address+0x58/0x80 > > [ 1611.755575] [<ffffffff81006b5f>] print_context_stack+0x8f/0x100 > > [ 1611.756410] [<ffffffff81005540>] dump_trace+0x140/0x370 > > [ 1611.757242] [<ffffffff811e797f>] ? getname_flags+0x4f/0x1a0 > > [ 1611.758072] [<ffffffff811e797f>] ? getname_flags+0x4f/0x1a0 > > [ 1611.758895] [<ffffffff810137cb>] save_stack_trace+0x2b/0x50 > > [ 1611.759720] [<ffffffff811c29a0>] set_track+0x70/0x140 > > [ 1611.760541] [<ffffffff8178d993>] alloc_debug_processing+0x92/0x118 > > [ 1611.761366] [<ffffffff8178e5d6>] __slab_alloc+0x45f/0x56f > > [ 1611.762195] [<ffffffff811e797f>] ? getname_flags+0x4f/0x1a0 > > [ 1611.763024] [<ffffffff8178dd57>] ? __slab_free+0x114/0x309 > > [ 1611.763853] [<ffffffff8137187e>] ? debug_check_no_obj_freed+0x17e/0x270 > > [ 1611.764712] [<ffffffff811e797f>] ? getname_flags+0x4f/0x1a0 > > [ 1611.765539] [<ffffffff811c6b26>] kmem_cache_alloc+0x1f6/0x270 > > So, every time there is a slab allocation the entire stack trace gets > saved as human readable text. And for each line in the trace,
Wrong. It gets saved as address. No conversion to text at all.
> is_module_text_address() can be called, which has huge overhead > walking the entire list of loaded modules. No wonder there are > timeouts...
You would have to have a gazillion of modules to make that overhead big enough to trigger a multi seconds watchdog.
Thanks,
tglx
| |