• Lai Jiangshan's avatar
    tracing: Fix invalid function_graph entry · 38ceb592
    Lai Jiangshan authored
    When print_graph_entry() computes a function call entry event, it needs
    to also check the next entry to guess if it matches the return event of
    the current function entry.
    In order to look at this next event, it needs to consume the current
    entry before going ahead in the ring buffer.
    
    However, if the current event that gets consumed is the last one in the
    ring buffer head page, the ring_buffer may reuse the page for writers.
    The consumed entry will then become invalid because of possible
    racy overwriting.
    
    Me must then handle this entry by making a copy of it.
    
    The fix also applies on 2.6.30
    Signed-off-by: default avatarLai Jiangshan <laijs@cn.fujitsu.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: stable@kernel.org
    LKML-Reference: <4A6EEAEC.3050508@cn.fujitsu.com>
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    38ceb592
trace_functions_graph.c 22.2 KB