lkml.org 
[lkml]   [2009]   [Oct]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: system gets stuck in a lock during boot
    From
    Date
    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




    \
     
     \ /
      Last update: 2009-10-06 03:33    [W:0.039 / U:29.564 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site