• Tejun Heo's avatar
    x86, percpu: Collect hot percpu variables into one cacheline · bdf977b3
    Tejun Heo authored
    On x86_64, percpu variables current_task and kernel_stack are used for
    get_current() and current_thread_info() respectively and thus are
    often used close to each other.  Move definition of current_task to
    kernel/cpu/common.c right above kernel_stack definition and align it
    to cacheline so that they always fall into the same cacheline.  Two
    percpu variables defined there together - irq_stack_ptr and irq_count
    - are also pretty hot and will benefit from sharing the cacheline.
    
    For consistency, current_task definition for x86_32 is also moved to
    kernel/cpu/common.c.
    
    Putting current_task and kernel_stack into the same cacheline was
    suggested by Linus Torvalds.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
    bdf977b3
common.c 29.8 KB