Messages in this thread |  | | Date | Thu, 13 Feb 2014 23:57:45 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: [PATCH RT] arm/unwind: fail on unwind in irq disabled regions |
| |
On Fri, 24 Jan 2014, Sebastian Andrzej Siewior wrote:
> Mostly unwind is done with irqs enabled however SLUB may call it with > irqs disabled while creating a new SLUB cache. > > I had system freeze while loading a module which called > kmem_cache_create() on init. That means SLUB's __slab_alloc() disabled > interrupts and then > > ->new_slab_objects() > ->new_slab() > ->setup_object() > ->setup_object_debug() > ->init_tracking() > ->set_track() > ->save_stack_trace() > ->save_stack_trace_tsk() > ->walk_stackframe() > ->unwind_frame() > ->unwind_find_idx() > =>spin_lock_irqsave(&unwind_lock); > > I would prefer not to turn this into a raw lock so for now it will just > fail if it is called with irqs disabled which might return a few "empty" > traces…
If we really end up with unwinding then the few cycles to follow the stack are not that important anymore. We really want that output.
Thanks,
tglx
|  |