lkml.org 
[lkml]   [2010]   [Mar]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [BUG] percpu misaligned allocation
    On Thu, Mar 18, 2010 at 05:54:13PM -0700, David Miller wrote:
    > From: Tejun Heo <tj@kernel.org>
    > Date: Thu, 18 Mar 2010 18:30:34 +0900
    >
    > >
    > > if (!total_profile_count) {
    > > - buf = (char *)alloc_percpu(perf_trace_t);
    > > + buf = (char *)__alloc_percpu(sizeof(perf_trace_t),
    > > + __alignof__(unsigned long));
    > > if (!buf)
    > > goto fail_buf;
    >
    > Why not make perf_trace_t have the proper alignment?


    So, making perf_trace_t as align(8) would do the trick?
    I lack the knowledge about alignment layout for archs that
    need aligned accesses.
    At a first glance, what I would except is that every buffer
    has a base address aligned, no?


    >
    > That's better than patching around it like this.
    >
    > Defining it as an array of char[]'s is just asking
    > for lots of trouble.


    Yeah but we need a generic type. This is because
    our buffer can be of any random type to match all
    the trace event layouts we have, all of them being
    generated by macros.



    \
     
     \ /
      Last update: 2010-03-19 02:33    [W:0.028 / U:0.548 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site