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
    Hello,

    On 03/19/2010 10:31 AM, Frederic Weisbecker wrote:
    > 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?

    Sure, I just wanted to verify the cause of the problem.

    > 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.

    If you can't make it a proper type, __alignof__(unsigned long long)
    would be better.

    > 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.

    I hope those macros align properly according to types.

    Thanks.

    --
    tejun


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