• A
    perf top: Fix live annotation in the --stdio interface · f9e3d4b1
    Arnaldo Carvalho de Melo 提交于
    In the old --stdio interface the annotation is done just after one
    selects a symbol, while in --tui, now the default when the required libs
    are installed, we annotate all symbols with samples so that when
    annotation is asked we see what happened recently on that symbol.
    
    To achieve that the --stdio variant checks if the hist_entry being
    processed is the one selected by the user via the 's' hotkey. What
    happens now that we share the hist_entry abstractions with 'perf report'
    is that for minimizing locking contention multiple rb_trees are used,
    one for collecting the samples and other to browse/show them after
    resorting it by number of samples and decay them, which is done
    periodically.
    
    So the simple test in record_precise_ip doesn't work as we move
    hist_entries between those rb_trees. To fix it just check that the
    underlying struct symbol associated with those hist_entries is the same.
    Reported-by: NMike Galbraith <efault@gmx.de>
    Tested-by: NMike Galbraith <efault@gmx.de>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lkml.kernel.org/n/tip-bcfnraqkux88fox9ba9767ds@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    f9e3d4b1
builtin-top.c 31.1 KB