• Kan Liang's avatar
    perf tools: handle PERF_RECORD_LOST_SAMPLES · c4937a91
    Kan Liang authored
    This patch modifies the perf tool to handle the new RECORD type,
    PERF_RECORD_LOST_SAMPLES.
    
    The number of lost-sample events is stored in
    .nr_events[PERF_RECORD_LOST_SAMPLES]. The exact number of samples
    which the kernel dropped is stored in total_lost_samples.
    
    When the percentage of dropped samples is greater than 5%, a warning
    is printed.
    
    Here are some examples:
    
    Eg 1, Recording different frequently-occurring events is safe with the
          patch. Only a very low drop rate is associated with such actions.
    
    $ perf record -e '{cycles:p,instructions:p}' -c 20003 --no-time ~/tchain ~/tchain
    
    $ perf report -D | tail
              SAMPLE events:     120243
               MMAP2 events:          5
        LOST_SAMPLES events:         24
      FINISHED_ROUND events:         15
    cycles:p stats:
               TOTAL events:      59348
              SAMPLE events:      59348
    instructions:p stats:
               TOTAL events:      60895
              SAMPLE events:      60895
    
    $ perf report --stdio --group
     # To display the perf.data header info, please use --header/--header-only options.
     #
     #
     # Total Lost Samples: 24
     #
     # Samples: 120K of event 'anon group { cycles:p, instructions:p }'
     # Event count (approx.): 24048600000
     #
     #         Overhead  Command      Shared Object     Symbol
     # ................  ...........  ................
     ..................................
     #
        99.74%  99.86%  tchain_edit  tchain_edit       [.] f3
         0.09%   0.02%  tchain_edit  tchain_edit       [.] f2
         0.04%   0.00%  tchain_edit  [kernel.vmlinux]  [k] ixgbe_read_reg
    
    Eg 2, Recording the same thing multiple times can lead to high drop
          rate, but it is not a useful configuration.
    
    $ perf record -e '{cycles:p,cycles:p}' -c 20003 --no-time ~/tchain
    Warning: Processed 600592 samples and lost 99.73% samples!
    [perf record: Woken up 148 times to write data]
    [perf record: Captured and wrote 36.922 MB perf.data (1206322 samples)]
    [perf record: Woken up 1 times to write data]
    [perf record: Captured and wrote 0.121 MB perf.data (1629 samples)]
    Signed-off-by: default avatarKan Liang <kan.liang@intel.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: acme@infradead.org
    Cc: eranian@google.com
    Link: http://lkml.kernel.org/r/1431285195-14269-9-git-send-email-kan.liang@intel.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    c4937a91
event.h 11.5 KB