Messages in this thread | | | Subject | Re: system gets stuck in a lock during boot | From | Steven Rostedt <> | Date | Mon, 05 Oct 2009 21:24:09 -0400 |
| |
On Fri, 2009-10-02 at 17:12 -0400, Jason Baron wrote:
> hi Justin, > > I've been playing around with gcc '4.5' as well and hit a panic that > looks very similar to what you've seen with stock 2.6.31 - I haven't > seen it anywhere else. Anyways, it seems to be some sort of alignment > issue with the 'struct ftrace_event_call'. I'm not sure yet if this is a > compiler or kernel issue. But the following kernel patch fixes the issue > for me. It would be interesting to verify if the patch also resolves the > issue for you. > > thanks, > > -Jason > > > diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h > index 6ad76bf..0029af4 100644 > --- a/include/asm-generic/vmlinux.lds.h > +++ b/include/asm-generic/vmlinux.lds.h > @@ -164,6 +164,7 @@ > LIKELY_PROFILE() \ > BRANCH_PROFILE() \ > TRACE_PRINTKS() \ > + . = ALIGN(32); \ > FTRACE_EVENTS() \ > TRACE_SYSCALLS() > > diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h > index a81170d..43f9f1e 100644 > --- a/include/linux/ftrace_event.h > +++ b/include/linux/ftrace_event.h > @@ -124,7 +124,7 @@ struct ftrace_event_call { > atomic_t profile_count; > int (*profile_enable)(struct ftrace_event_call *); > void (*profile_disable)(struct ftrace_event_call *); > -}; > +} __attribute__((aligned(32))); > > #define MAX_FILTER_PRED 32 > #define MAX_FILTER_STR_VAL 128 > diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h > index f64fbaa..4697fb6 100644 > --- a/include/trace/ftrace.h > +++ b/include/trace/ftrace.h > @@ -600,7 +600,7 @@ static int ftrace_raw_init_event_##call(void) \ > } \ > \ > static struct ftrace_event_call __used \ > -__attribute__((__aligned__(4))) \ > +__attribute__((__aligned__(32))) \ > __attribute__((section("_ftrace_events"))) event_##call = { \ > .name = #call, \ > .system = __stringify(TRACE_SYSTEM), \
Are all alignments needed? Or just adding one might help. Or removing the one directly above?
-- Steve
| |