• Fenghua Yu's avatar
    define new percpu interface for shared data · 5fb7dc37
    Fenghua Yu authored
    per cpu data section contains two types of data.  One set which is
    exclusively accessed by the local cpu and the other set which is per cpu,
    but also shared by remote cpus.  In the current kernel, these two sets are
    not clearely separated out.  This can potentially cause the same data
    cacheline shared between the two sets of data, which will result in
    unnecessary bouncing of the cacheline between cpus.
    
    One way to fix the problem is to cacheline align the remotely accessed per
    cpu data, both at the beginning and at the end.  Because of the padding at
    both ends, this will likely cause some memory wastage and also the
    interface to achieve this is not clean.
    
    This patch:
    
    Moves the remotely accessed per cpu data (which is currently marked
    as ____cacheline_aligned_in_smp) into a different section, where all the data
    elements are cacheline aligned. And as such, this differentiates the local
    only data and remotely accessed data cleanly.
    Signed-off-by: default avatarFenghua Yu <fenghua.yu@intel.com>
    Acked-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Cc: Christoph Lameter <clameter@sgi.com>
    Cc: <linux-arch@vger.kernel.org>
    Cc: "Luck, Tony" <tony.luck@intel.com>
    Cc: Andi Kleen <ak@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    5fb7dc37
percpu.h 4.29 KB