• Peter Zijlstra's avatar
    perf_counter: fix race in perf_output_* · c33a0bc4
    Peter Zijlstra authored
    When two (or more) contexts output to the same buffer, it is possible
    to observe half written output.
    
    Suppose we have CPU0 doing perf_counter_mmap(), CPU1 doing
    perf_counter_overflow(). If CPU1 does a wakeup and exposes head to
    user-space, then CPU2 can observe the data CPU0 is still writing.
    
    [ Impact: fix occasionally corrupted profiling records ]
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
    LKML-Reference: <20090501102533.007821627@chello.nl>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    c33a0bc4
perf_counter.c 78.1 KB