Skip to content
  • Jiri Olsa's avatar
    14d3d540
    perf session: Try to read pipe data from file · 14d3d540
    Jiri Olsa authored
    
    
    Ian came with the idea of having support to read the pipe data also from
    file. Currently pipe mode files fail like:
    
      $ perf record -o - sleep 1 > /tmp/perf.pipe.data
      $ perf report -i /tmp/perf.pipe.data
      incompatible file format (rerun with -v to learn more)
    
    This patch adds the support to do that by trying the pipe header first,
    and if its successfully detected, switching the perf data to pipe mode.
    
    Committer testing:
    
      # ls
      # perf record -a -o - sleep 1 > /tmp/perf.pipe.data
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.000 MB - ]
      # ls
      # perf report -i /tmp/perf.pipe.data | head -25
      # To display the perf.data header info, please use --header/--header-only options.
      #
      #
      # Total Lost Samples: 0
      #
      # Samples: 511  of event 'cycles'
      # Event count (approx.): 178447276
      #
      # Overhead  Command   Shared Object      Symbol
      # ........  ........  .................  ...........................................................................................
      #
          65.49%  swapper   [kernel.kallsyms]  [k] native_safe_halt
           6.45%  chromium  libblink_core.so   [.] blink::SelectorChecker::CheckOne
           4.08%  chromium  libblink_core.so   [.] blink::SelectorQuery::ExecuteForTraverseRoot<blink::AllElementsSelectorQueryTrait>
           2.25%  chromium  libblink_core.so   [.] blink::SelectorQuery::FindTraverseRootsAndExecute<blink::AllElementsSelectorQueryTrait>
           2.11%  chromium  libblink_core.so   [.] blink::SelectorChecker::MatchSelector
           1.91%  chromium  libblink_core.so   [.] blink::Node::OwnerShadowHost
           1.31%  chromium  libblink_core.so   [.] blink::Node::parentNode@plt
           1.22%  chromium  libblink_core.so   [.] blink::Node::parentNode
           0.59%  chromium  libblink_core.so   [.] blink::AnyAttributeMatches
           0.58%  chromium  libv8.so           [.] v8::internal::GlobalHandles::Create
           0.58%  chromium  libblink_core.so   [.] blink::NodeTraversal::NextAncestorSibling
           0.55%  chromium  libv8.so           [.] v8::internal::RegExpGlobalCache::RegExpGlobalCache
           0.55%  chromium  libblink_core.so   [.] blink::Node::ContainingShadowRoot
           0.55%  chromium  libblink_core.so   [.] blink::NodeTraversal::NextAncestorSibling@plt
      #
    
    Original-patch-by: default avatarIan Rogers <irogers@google.com>
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Michael Petlan <mpetlan@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Paul Khuong <pvk@pvk.ca>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20200507095024.2789147-4-jolsa@kernel.org
    
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    14d3d540
    perf session: Try to read pipe data from file
    Jiri Olsa authored
    
    
    Ian came with the idea of having support to read the pipe data also from
    file. Currently pipe mode files fail like:
    
      $ perf record -o - sleep 1 > /tmp/perf.pipe.data
      $ perf report -i /tmp/perf.pipe.data
      incompatible file format (rerun with -v to learn more)
    
    This patch adds the support to do that by trying the pipe header first,
    and if its successfully detected, switching the perf data to pipe mode.
    
    Committer testing:
    
      # ls
      # perf record -a -o - sleep 1 > /tmp/perf.pipe.data
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.000 MB - ]
      # ls
      # perf report -i /tmp/perf.pipe.data | head -25
      # To display the perf.data header info, please use --header/--header-only options.
      #
      #
      # Total Lost Samples: 0
      #
      # Samples: 511  of event 'cycles'
      # Event count (approx.): 178447276
      #
      # Overhead  Command   Shared Object      Symbol
      # ........  ........  .................  ...........................................................................................
      #
          65.49%  swapper   [kernel.kallsyms]  [k] native_safe_halt
           6.45%  chromium  libblink_core.so   [.] blink::SelectorChecker::CheckOne
           4.08%  chromium  libblink_core.so   [.] blink::SelectorQuery::ExecuteForTraverseRoot<blink::AllElementsSelectorQueryTrait>
           2.25%  chromium  libblink_core.so   [.] blink::SelectorQuery::FindTraverseRootsAndExecute<blink::AllElementsSelectorQueryTrait>
           2.11%  chromium  libblink_core.so   [.] blink::SelectorChecker::MatchSelector
           1.91%  chromium  libblink_core.so   [.] blink::Node::OwnerShadowHost
           1.31%  chromium  libblink_core.so   [.] blink::Node::parentNode@plt
           1.22%  chromium  libblink_core.so   [.] blink::Node::parentNode
           0.59%  chromium  libblink_core.so   [.] blink::AnyAttributeMatches
           0.58%  chromium  libv8.so           [.] v8::internal::GlobalHandles::Create
           0.58%  chromium  libblink_core.so   [.] blink::NodeTraversal::NextAncestorSibling
           0.55%  chromium  libv8.so           [.] v8::internal::RegExpGlobalCache::RegExpGlobalCache
           0.55%  chromium  libblink_core.so   [.] blink::Node::ContainingShadowRoot
           0.55%  chromium  libblink_core.so   [.] blink::NodeTraversal::NextAncestorSibling@plt
      #
    
    Original-patch-by: default avatarIan Rogers <irogers@google.com>
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Michael Petlan <mpetlan@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Paul Khuong <pvk@pvk.ca>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20200507095024.2789147-4-jolsa@kernel.org
    
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Loading