lkml.org 
[lkml]   [2011]   [Jul]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    Subject[Q x86-64] on kernel_eflags
    While were looking into ret_from_fork code I somehow wondered
    about the global kernel_eflags variable here.

    arch/x86/cpu/common.c
    ---------------------
    unsigned long kernel_eflags;

    void __cpuinit cpu_init(void)
    {
    ...
    raw_local_save_flags(kernel_eflags);
    }

    arch/x86/kernel/entry_64.S
    --------------------------
    ENTRY(ret_from_fork)
    DEFAULT_FRAME
    LOCK ; btr $TIF_FORK,TI_flags(%r8)
    pushq_cfi kernel_eflags(%rip)
    popfq_cfi # reset kernel eflags

    Every call to cpu_init renew global kernel_eflags
    and every task switching does use this variable in a
    sake of cleaning carry bit of flags register as far as
    I can tell.

    Should not every cpu has own copy of kernel_eflags? Just
    to be consistent in style? Or this would be space waisting
    and an optimization is done here?

    Cyrill


    \
     
     \ /
      Last update: 2011-07-05 12:49    [W:0.021 / U:0.152 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site