12 Sep, 2009

2 commits

  • Conflicts:
    arch/sparc/Kconfig

    David S. Miller
     
  • …el/git/tip/linux-2.6-tip

    * 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (105 commits)
    ring-buffer: only enable ring_buffer_swap_cpu when needed
    ring-buffer: check for swapped buffers in start of committing
    tracing: report error in trace if we fail to swap latency buffer
    tracing: add trace_array_printk for internal tracers to use
    tracing: pass around ring buffer instead of tracer
    tracing: make tracing_reset safe for external use
    tracing: use timestamp to determine start of latency traces
    tracing: Remove mentioning of legacy latency_trace file from documentation
    tracing/filters: Defer pred allocation, fix memory leak
    tracing: remove users of tracing_reset
    tracing: disable buffers and synchronize_sched before resetting
    tracing: disable update max tracer while reading trace
    tracing: print out start and stop in latency traces
    ring-buffer: disable all cpu buffers when one finds a problem
    ring-buffer: do not count discarded events
    ring-buffer: remove ring_buffer_event_discard
    ring-buffer: fix ring_buffer_read crossing pages
    ring-buffer: remove unnecessary cpu_relax
    ring-buffer: do not swap buffers during a commit
    ring-buffer: do not reset while in a commit
    ...

    Linus Torvalds
     

06 Sep, 2009

1 commit


05 Sep, 2009

2 commits

  • This patch improves some (common) inefficiencies in the
    handling of directory lookups:

    - not using the d_type information returned by the kernel

    - constructing (absolute) paths for file operation even though
    directory-relative operations using the *at functions is
    possible

    There are more places to fix but this is a start.

    Signed-off-by: Ulrich Drepper
    Signed-off-by: Arnaldo Carvalho de Melo
    Cc: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Mike Galbraith
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ulrich Drepper
     
  • Remove some, now useless, global storage.
    Don't calculate the stddev when not needed.

    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     

04 Sep, 2009

5 commits

  • Use the more advanced single pass variance algorithm outlined
    on the wikipedia page. This is numerically more stable for
    larger sample sets.

    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • When we're computing the mean by sampling the distribution,
    then the std dev of the mean is related to the std dev of the
    sample set by:

    stddev_mean = std_dev / sqrt(N)

    Which is exactly what we want.

    This results in the error on the mean decreasing with
    increasing number of samples.

    Also fix the scaled == -1, aka not counted case.

    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Since we don't need all the individual samples to calculate the
    error remove both the limit and the storage overhead associated
    with that.

    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • The current noise computation does:

    \Sum abs(n_i - avg(n)) * N^-1.5

    Which is (afaik) not a regular noise function, and needs the
    complete sample set available to post-process.

    Change this to use a regular stddev computation which can be
    done by keeping a two sums:

    stddev = sqrt( 1/N (\Sum n_i^2) - avg(n)^2 )

    For which we only need to keep \Sum n_i and \Sum n_i^2.

    Signed-off-by: Peter Zijlstra
    Cc:
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • This wires up the perf_counter_open() syscall so that basic
    software support for perf is working.

    Signed-off-by: Jens Axboe
    Signed-off-by: David S. Miller

    Jens Axboe
     

03 Sep, 2009

6 commits

  • We did not account for the enclosing \0. Depending on what malloc()
    gave us this resulted in corrupted version string printouts.

    Cc: Peter Zijlstra
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Arnaldo Carvalho de Melo
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Print out more accurate timestamps - usecs does not cut it
    anymore on fast enough boxes ;-)

    Cc: Peter Zijlstra
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Arnaldo Carvalho de Melo
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Leave the input fd at the data area.

    It does not matter right now - but seeking at the end of it
    certainly did not make sense.

    Cc: Peter Zijlstra
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Arnaldo Carvalho de Melo
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • We started parsing perf.data at head 0. This caused -D to
    segfault and it could possibly also case incorrect trace
    entries to be displayed.

    Parse it at data_offset instead.

    Cc: Peter Zijlstra
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Arnaldo Carvalho de Melo
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Before:

    perf-21082 [013] 0.000000: sched_wakeup_new: task perf:21083 [120] success=1 [015]
    perf-21082 [013] 0.000000: sched_migrate_task: task perf:21082 [120] from: 13 to: 15
    perf-21082 [013] 0.000000: sched_process_fork: parent perf:21082 child perf:21083
    true-21083 [015] 0.000000: sched_wakeup: task migration/15:33 [0] success=1 [015]
    perf-21082 [013] 0.000000: sched_switch: task perf:21082 [120] (S) ==> swapper:0 [140]
    true-21083 [015] 0.000000: sched_switch: task perf:21083 [120] (R) ==> migration/15:33 [0]
    true-21083 [011] 0.000000: sched_process_exit: task true:21083 [120]

    After:

    perf-21082 [013] 14674.797613: sched_wakeup_new: task perf:21083 [120] success=1 [015]
    perf-21082 [013] 14674.797506: sched_migrate_task: task perf:21082 [120] from: 13 to: 15
    perf-21082 [013] 14674.797610: sched_process_fork: parent perf:21082 child perf:21083
    true-21083 [015] 14674.797725: sched_wakeup: task migration/15:33 [0] success=1 [015]
    perf-21082 [013] 14674.797722: sched_switch: task perf:21082 [120] (S) ==> swapper:0 [140]
    true-21083 [015] 14674.797729: sched_switch: task perf:21083 [120] (R) ==> migration/15:33 [0]
    true-21083 [011] 14674.798159: sched_process_exit: task true:21083 [120]

    Cc: Peter Zijlstra
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Arnaldo Carvalho de Melo
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Sample, record, parse and print the CPU field - it had all zeroes before.

    Before (watch the second column, the CPU values):

    perf-32685 [000] 0.000000: sched_wakeup_new: task perf:32686 [120] success=1 [011]
    perf-32685 [000] 0.000000: sched_migrate_task: task perf:32685 [120] from: 1 to: 11
    perf-32685 [000] 0.000000: sched_process_fork: parent perf:32685 child perf:32686
    true-32686 [000] 0.000000: sched_wakeup: task migration/11:25 [0] success=1 [011]
    true-32686 [000] 0.000000: sched_wakeup: task distccd:12793 [125] success=1 [015]
    true-32686 [000] 0.000000: sched_wakeup: task distccd:12793 [125] success=1 [015]
    perf-32685 [000] 0.000000: sched_switch: task perf:32685 [120] (S) ==> swapper:0 [140]
    true-32686 [000] 0.000000: sched_switch: task perf:32686 [120] (R) ==> migration/11:25 [0]
    true-32686 [000] 0.000000: sched_switch: task perf:32686 [120] (R) ==> distccd:12793 [125]
    true-32686 [000] 0.000000: sched_switch: task true:32686 [120] (R) ==> distccd:12793 [125]
    true-32686 [000] 0.000000: sched_process_exit: task true:32686 [120]
    true-32686 [000] 0.000000: sched_stat_wait: task: distccd:12793 wait: 6767985949080 [ns]
    true-32686 [000] 0.000000: sched_stat_wait: task: distccd:12793 wait: 6767986139446 [ns]
    true-32686 [000] 0.000000: sched_stat_sleep: task: distccd:12793 sleep: 132844 [ns]
    true-32686 [000] 0.000000: sched_stat_sleep: task: distccd:12793 sleep: 131724 [ns]

    After:

    perf-32685 [001] 0.000000: sched_wakeup_new: task perf:32686 [120] success=1 [011]
    perf-32685 [001] 0.000000: sched_migrate_task: task perf:32685 [120] from: 1 to: 11
    perf-32685 [001] 0.000000: sched_process_fork: parent perf:32685 child perf:32686
    true-32686 [011] 0.000000: sched_wakeup: task migration/11:25 [0] success=1 [011]
    true-32686 [015] 0.000000: sched_wakeup: task distccd:12793 [125] success=1 [015]
    true-32686 [015] 0.000000: sched_wakeup: task distccd:12793 [125] success=1 [015]
    perf-32685 [001] 0.000000: sched_switch: task perf:32685 [120] (S) ==> swapper:0 [140]
    true-32686 [011] 0.000000: sched_switch: task perf:32686 [120] (R) ==> migration/11:25 [0]
    true-32686 [015] 0.000000: sched_switch: task perf:32686 [120] (R) ==> distccd:12793 [125]
    true-32686 [015] 0.000000: sched_switch: task true:32686 [120] (R) ==> distccd:12793 [125]
    true-32686 [015] 0.000000: sched_process_exit: task true:32686 [120]
    true-32686 [015] 0.000000: sched_stat_wait: task: distccd:12793 wait: 6767985949080 [ns]
    true-32686 [015] 0.000000: sched_stat_wait: task: distccd:12793 wait: 6767986139446 [ns]
    true-32686 [015] 0.000000: sched_stat_sleep: task: distccd:12793 sleep: 132844 [ns]
    true-32686 [015] 0.000000: sched_stat_sleep: task: distccd:12793 sleep: 131724 [ns]

    So we can now see how this workload migrated between CPUs.

    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Frederic Weisbecker
    Cc: Li Zefan
    Cc: Mike Galbraith
    Cc: Arnaldo Carvalho de Melo
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

02 Sep, 2009

2 commits

  • Older versions of GCC are rather stupid about strict aliasing:

    util/trace-event-parse.c: In function 'parse_cmdlines':
    util/trace-event-parse.c:93: warning: dereferencing type-punned pointer will break strict-aliasing rules
    util/trace-event-parse.c: In function 'parse_proc_kallsyms':
    util/trace-event-parse.c:155: warning: dereferencing type-punned pointer will break strict-aliasing rules
    util/trace-event-parse.c:157: warning: dereferencing type-punned pointer will break strict-aliasing rules
    util/trace-event-parse.c:158: warning: dereferencing type-punned pointer will break strict-aliasing rules
    util/trace-event-parse.c: In function 'parse_ftrace_printk':
    util/trace-event-parse.c:294: warning: dereferencing type-punned pointer will break strict-aliasing rules
    util/trace-event-parse.c:295: warning: dereferencing type-punned pointer will break strict-aliasing rules
    make: *** [util/trace-event-parse.o] Error 1

    Make it clear to GCC that we intend with those pointers, by passing
    them through via an explicit (void *) cast.

    We might want to add -fno-strict-aliasing as well, like the kernel
    itself does.

    Cc: Peter Zijlstra
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Arnaldo Carvalho de Melo
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Make it easier to turn warnings on/off by using a separate
    line for each warning added.

    Some of the warnings have too much of a nuisance factor and
    we might want to turn them off in the future.

    Cc: Arjan van de Ven
    Cc: Peter Zijlstra
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Arnaldo Carvalho de Melo
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

31 Aug, 2009

6 commits

  • Complete support for __str_loc type strings of ftrace events
    which have dynamic offsets values set for each of them inside
    their sammples.

    Before:
    geany-5759 [000] 0.000000: lock_release: name
    geany-5759 [000] 0.000000: lock_release: name
    geany-5759 [000] 0.000000: lock_release: name
    kondemand/0-362 [000] 0.000000: lock_release: name
    pdflush-421 [000] 0.000000: lock_release: name

    After:
    geany-5759 [000] 0.000000: lock_release: &u->lock
    geany-5759 [000] 0.000000: lock_release: key
    geany-5759 [000] 0.000000: lock_release: &group->notification_mutex
    kondemand/0-362 [000] 0.000000: lock_release: &rq->lock
    pdflush-421 [000] 0.000000: lock_release: &rq->lock

    Signed-off-by: Frederic Weisbecker
    Cc: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Steven Rostedt
    LKML-Reference:
    Signed-off-by: Ingo Molnar
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Steven Rostedt

    Frederic Weisbecker
     
  • In perf tools, we hardcode the pid 0 cmdline resolving to
    "idle" because the init task is not included in the COMM
    events.

    But the idle tasks secondary cpus are resolved into their
    "init" name through the COMM events.

    We have then such strange result in perf report (ditto with
    trace):

    19.66% init [kernel] [k] acpi_idle_enter_c1
    17.32% [idle] [kernel] [k] acpi_idle_enter_c1

    It's then better to unify the swapper tasks into a single init
    name.

    Signed-off-by: Frederic Weisbecker
    Cc: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    LKML-Reference:
    Signed-off-by: Ingo Molnar
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo

    Frederic Weisbecker
     
  • The cmd-trace tool used the cmdline file and resolved the idle
    thread using a hardcoded check for the 0 task pid.

    Now we have a centralized way to do that from perf using
    register_idle_thread() API.

    Before:
    :0-0 [000] 0.000000: irq_handler_entry: irq=0 handler=name
    :0-0 [000] 0.000000: irq_handler_entry: irq=0 handler=name

    After:
    [idle]-0 [000] 0.000000: irq_handler_entry: irq=0 handler=name
    [idle]-0 [000] 0.000000: irq_handler_entry: irq=0 handler=name

    Signed-off-by: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • Librarize register_idle_thread() used by annotate and report.

    Signed-off-by: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • Add missing documentation for the following parameters:

    - perf record -R
    - perf report -g

    Signed-off-by: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • Merge reason: this topic is ready now to merge into the main
    development branch for .32, with functional
    perf trace output.

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

28 Aug, 2009

3 commits

  • This improves patch fa6963b24 so that perf.data stuff that has
    been dumped as root can be read (annotate/report) by a user
    without the use of the --force.

    Rationale is that root has plenty of ways to screw us (usually)
    that do not require twisted schemes involving specially
    crafting a perf.data.

    Signed-off-by: Pierre Habouzit
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc:
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pierre Habouzit
     
  • Some string fields are not printed because of a missing printf
    in the post-processing.

    Before:
    perf-10070 [000] 0.000000: sched_switch: task :10070 [120] (R) ==> :5720 [120]
    geany-5720 [000] 0.000000: sched_switch: task :5720 [120] (S) ==> :10070 [120]
    perf-10070 [000] 0.000000: sched_switch: task :10070 [120] (R) ==> :5720 [120]
    geany-5720 [000] 0.000000: sched_switch: task :5720 [120] (S) ==> :10070 [120]
    -0 [000] 0.000000: sched_switch: task :0 [140] (R) ==> :361 [115]

    After:
    perf-10070 [000] 0.000000: sched_switch: task perf:10070 [120] (R) ==> geany:5720 [120]
    geany-5720 [000] 0.000000: sched_switch: task geany:5720 [120] (S) ==> perf:10070 [120]
    perf-10070 [000] 0.000000: sched_switch: task perf:10070 [120] (R) ==> geany:5720 [120]
    geany-5720 [000] 0.000000: sched_switch: task geany:5720 [120] (S) ==> perf:10070 [120]
    -0 [000] 0.000000: sched_switch: task swapper:0 [140] (R) ==> kondemand/1:361 [115]

    Signed-off-by: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Steven Rostedt
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • While opening a trace event counter, every events are saved in
    the trace.info file. But we only want to save the
    specifications of the events we are using.

    Signed-off-by: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Steven Rostedt
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     

27 Aug, 2009

1 commit


24 Aug, 2009

1 commit


22 Aug, 2009

1 commit

  • Add OPT_END to option array of perf-trace for fixing a SEGV bug when
    showing perf-trace help message.

    Without this patch;
    ./perf trace -h

    usage: perf trace []

    -D, --dump-raw-trace dump raw trace in ASCII
    -v, --verbose be more verbose (show symbol address, etc)
    -f, Segmentation fault

    With this patch:
    ./perf trace -h

    usage: perf trace []

    -D, --dump-raw-trace dump raw trace in ASCII
    -v, --verbose be more verbose (show symbol address, etc)

    Signed-off-by: Masami Hiramatsu
    Cc: systemtap
    Cc: DLE
    Cc: Masami Hiramatsu
    Cc: Steven Rostedt
    Cc: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Mike Galbraith
    Cc: Xiao Guangrong
    Cc: Zhaolei
    Cc: Li Zefan
    Cc: Lai Jiangshan
    Cc: Tom Zanussi
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     

19 Aug, 2009

2 commits

  • Add an owner check to opening perf.data files and a switch to
    silence it.

    Because perf-report/perf-annotate are binary parsers reading
    another users' perf.data file could be a security risk if the
    file were explicitly engineered to trigger bugs in the parser
    (we hope of course there are non such bugs, but you never
    know).

    Signed-off-by: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • pushd tools/perf/Documentation
    make html
    popd

    is failing for me...

    ASCIIDOC perf-annotate.html
    ERROR: unsafe: include file: /etc/asciidoc/./stylesheets/xhtml11.css
    ERROR: unsafe: include file:
    /etc/asciidoc/./stylesheets/xhtml11-manpage.css
    ERROR: unsafe: include file:
    /etc/asciidoc/./stylesheets/xhtml11-quirks.css
    make: *** [perf-annotate.html] Error 1

    Apparently asciidoc "unsafe" is the default mode of operation
    in practice.

    https://bugzilla.redhat.com/show_bug.cgi?id=506953

    Works tidily now.

    Signed-off-by: Kyle McMartin
    Cc: Peter Zijlstra
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Arnaldo Carvalho de Melo
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Kyle McMartin
     

18 Aug, 2009

8 commits

  • The librarization of the thread helpers between annotate and
    report lost some perf report specifics.

    thread__insert_map() had its most uptodate version in perf
    report which cared about partial map overlapping. In case of
    overlap between two maps, perf annotate's version removes the
    whole old map without considering if it partially or
    absolutely overlaps the new map.

    We exported the odd version, change it by using the perf
    report version.

    Signed-off-by: Frederic Weisbecker
    Cc: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Mike Galbraith
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • The librarization of the thread helpers between annotate and
    report lost some perf report specifics.

    This patch fixes the thread comm column adjusting that has
    been omitted during this export.

    Signed-off-by: Frederic Weisbecker
    Cc: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Mike Galbraith
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • Linus reported this perf annotate segfault:

    [torvalds@nehalem git]$ perf annotate unmap_vmas
    Segmentation fault

    #0 map__clone (self=) at builtin-annotate.c:236
    #1 thread__fork (self=) at builtin-annotate.c:372

    The bug here was that builtin-annotate.c was a copy of
    builtin-report.c and a threading related fix to builtin-report.c
    didnt get propagated to builtin-annotate.c ...

    Reported-by: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Arnaldo Carvalho de Melo
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • The _XOPEN_SOURCE* defines are not really needed on Linux and
    it's not like we'll port this to AIX ;-)

    The define also broke the build with gcc 4.4.1:

    CC util/trace-event-parse.o
    In file included from util/trace-event-parse.c:32:
    util/util.h:43:1: error: "_XOPEN_SOURCE" redefined

    So remove them.

    Cc: Peter Zijlstra
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Arnaldo Carvalho de Melo
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • The ftrace event format parser handles the usual casts but not
    the cast to pointers. Such casts have been introduced recently
    with the module trace events and raise the following parsing
    error:

    Fatal: bad op token )

    This is because it considers the "*" character as a binary
    operator. Make it then aware of casts to pointers.

    Signed-off-by: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Mike Galbraith
    Cc: Steven Rostedt
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • You can enable a counter's PERF_SAMPLE_RAW attribute in two
    fashions:

    - using the -R option (every counters get PERF_SAMPLE_RAW)
    - using the :record suffix in a trace event counter name

    Currently we record the events info in a trace.info file from
    perf record when the former method is used but we omit it with
    the latter.

    Check both situations.

    Signed-off-by: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Mike Galbraith
    Cc: Steven Rostedt
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • When a user runs perf trace using an input with logged
    counters without PERF_SAMPLE_RAW attribute, warn by giving a
    nice tip.

    Signed-off-by: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Mike Galbraith
    Cc: Steven Rostedt
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • While running perf report -g in a perf.data file that hasn't
    been recorded in callchain mode, the error reported has a
    spelling issue:

    ./perf report -g
    selected -c but no callchain data. Did you call perf record without -g?

    Fix it.

    Signed-off-by: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Mike Galbraith
    Cc: Steven Rostedt
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker