The libunwind-based unwinder uses it's own primitive allocator to avoid such problems. I posted a working patch a couple of months back. --david On 12/21/06, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
On Wed, 2006-12-20 at 22:03 -0700, Matthew Wilcox wrote: > > mutex-debug uses DEBUG_LOCKS_WARN_ON() which indirectly calls > > dump_stack which the IA64 unwind code (arch/ia64/kernel/unwind.c) > calls > > kmalloc. The lockdep tests are run before the slab caches have been > > allocated so cpu_cache_get is called with a NULL cachep, hence the > > oops. > > Yup. I just debugged and fixed the same problem on parisc. I didn't > think to check ia64; I checked to see what x86-64 did. Unfortunately, > the ia64 unwind code seems a lot more subtle and more allocation-happy > than the parisc unwind code, so I'm not sure exactly how to fix ia64. yeah. calling kmalloc() within the unwinder is a no-no. What if the unwind happens while kmalloc() is crashing? Ingo > - To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
-- Mosberger Consulting LLC, http://www.mosberger-consulting.com/ - To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |