Skip to content
  1. Sep 26, 2014
    • Arnaldo Carvalho de Melo's avatar
      perf tests: Add pollfd growing test · 9ae28035
      Arnaldo Carvalho de Melo authored
      
      
        [acme@ssdandy linux]$ perf test "Add fd"
        34: Add fd to pollfd array, making it autogrow             : Ok
        [acme@ssdandy linux]$ perf test -v "Add fd"
        34: Add fd to pollfd array, making it autogrow             :
        --- start ---
        test child forked, pid 19817
      
        before growing array:   2 [ 1, 2 ]
        after 3rd add_pollfd:   3 [ 1, 2, 35 ]
        after 4th add_pollfd:   4 [ 1, 2, 35, 88 ]
        test child finished with 0
        ---- end ----
        Add fd to pollfd array, making it autogrow: Ok
        [acme@ssdandy linux]$
      
      Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Jean Pihet <jean.pihet@linaro.org>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-smflpyta146bzog7z0effjss@git.kernel.org
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      9ae28035
    • Arnaldo Carvalho de Melo's avatar
      perf evlist: Allow growing pollfd on add method · ad6765dd
      Arnaldo Carvalho de Melo authored
      
      
      This way we will be able to add more file descriptors to be polled,
      like stdin or some timer fd.
      
      At this point we might as well yank the pollfd class from evlist so that
      it can be used in other places.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Jean Pihet <jean.pihet@linaro.org>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-o2mzsjl7taumsoc35ryol00i@git.kernel.org
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      ad6765dd
    • Arnaldo Carvalho de Melo's avatar
      perf evlist: We need to poll all event file descriptors · 033fa713
      Arnaldo Carvalho de Melo authored
      
      
      Because we want to notice when they get POLLHUP'ed, so that we can
      figure out when all threads exited in a workload being monitored.
      
      We can't just monitor the fds that were mmaped, we need to notice when
      all the fds that were PERF_EVENT_IOC_SET_OUTPUT'ed too, because the mmap
      stays even after the fd that originally was used to do the mmap call
      went away, its only when all the set-output fds for a mmap are gone that
      the mmap is.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/r/20140908151016.GH17728@krava.brq.redhat.com
      Link: http://lkml.kernel.org/n/tip-24omlq5asrfg4uo3muuzn2bl@git.kernel.org
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      033fa713
    • Arnaldo Carvalho de Melo's avatar
      perf evlist: Monitor POLLERR and POLLHUP events too · 8179672c
      Arnaldo Carvalho de Melo authored
      
      
      We want to know when the fd went away, like when a monitored thread
      exits.
      
      If we do not monitor such events, then the tools will wait forever on
      events from a vanished thread, like when running:
      
       $ sleep 5s &
       $ perf record -p `pidof sleep`
      
      This builds upon the kernel patch by Jiri Olsa that actually makes a
      poll on those file descriptors to return POLLHUP.
      
      It is also needed to change the tools to use
      perf_evlist__filter_pollfd() to check if there are remainings fds to
      monitor or if all are gone, in which case they will exit the
      poll/mmap/read loop.
      
      Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@kernel.org>
      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-a4fslwspov0bs69nj825hqpq@git.kernel.org
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      8179672c
    • Arnaldo Carvalho de Melo's avatar
      perf tests: Add test for perf_evlist__filter_pollfd() · 54dbfae3
      Arnaldo Carvalho de Melo authored
      
      
      That will use a synthetic evlist with just what is touched by this new
      method to check that it works as expected.
      
      Output in verbose mode:
      
        $ perf test -v pollfd
        33: Filter fds with revents mask in a pollfd array         :
        --- start ---
        filtering all but pollfd[2]:
        before:   5 [ 5, 4, 3, 2, 1 ]
         after:   1 [ 3 ]
        filtering all but (pollfd[0], pollfd[3]):
        before:   5 [ 5, 4, 3, 2, 1 ]
         after:   2 [ 5, 2 ]
        test child finished with 0
        ---- end ----
        Filter fds with revents mask in a pollfd array: Ok
        $
      
      Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@kernel.org>
      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-x7c8liszdvc3ocmanf2cet8p@git.kernel.org
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      54dbfae3
    • Arnaldo Carvalho de Melo's avatar
      perf evlist: Introduce perf_evlist__filter_pollfd method · 1ddec7f0
      Arnaldo Carvalho de Melo authored
      
      
      To remove all entries in evlist->pollfd[] that have revents matching at
      least one of the bits in the specified mask.
      
      It'll adjust evlist->nr_fds to the number of unfiltered fds and will
      return this value, as a convenience and to avoid requiring direct access
      to internal state of perf_evlist objects.
      
      This will be used after polling the evlist fds so that we remove fds
      that were closed by the kernel.
      
      Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@kernel.org>
      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-y2sca7z3wicvvy40a50lozwm@git.kernel.org
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      1ddec7f0
  2. Sep 24, 2014
    • Stephane Eranian's avatar
      perf/x86/intel/uncore: Update support for client uncore IMC PMU · 521e8bac
      Stephane Eranian authored
      
      
      This patch restructures the memory controller (IMC) uncore PMU support
      for client SNB/IVB/HSW processors. The main change is that it can now
      cope with more than one PCI device ID per processor model. There are
      many flavors of memory controllers for each processor. They have
      different PCI device ID, yet they behave the same w.r.t. the memory
      controller PMU that we are interested in.
      
      The patch now supports two distinct memory controllers for IVB
      processors: one for mobile, one for desktop.
      
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20140917090616.GA11281@quad
      Cc: ak@linux.intel.com
      Cc: kan.liang@intel.com
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      521e8bac
    • Andi Kleen's avatar
      perf/x86/intel/uncore: Fix PCU filter setup for Sandy/Ivy/Haswell EP · b10fc1c3
      Andi Kleen authored
      
      
      The PCU frequency band filters use 8 bit each in a register.
      When setting up the value the shift value was not correctly
      scaled, which resulted in all filters except for band 0 to
      be zero. Fix the scaling.
      
      This allows to correctly monitor multiple uncore frequency bands.
      
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: eranian@google.com
      Link: http://lkml.kernel.org/r/1409872109-31645-5-git-send-email-andi@firstfloor.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      b10fc1c3
    • Andi Kleen's avatar
      perf/x86/intel/uncore: Add missing cbox filter flags on IvyBridge-EP uncore driver · 7e96ae1a
      Andi Kleen authored
      
      
      The IvyBridge-EP uncore driver was missing three filter flags:
      NC, ISOC, C6 which are useful in some cases. Support them in the same way
      as the Haswell EP driver, by allowing to set them and exposing
      them in the sysfs formats.
      
      Also fix a typo in a define.
      
      Relies on the Haswell EP driver to be applied earlier.
      
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1409872109-31645-4-git-send-email-andi@firstfloor.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      7e96ae1a
    • Yan, Zheng's avatar
      perf/x86/intel/uncore: Register the PMU only if the uncore pci device exists · 513d793e
      Yan, Zheng authored
      
      
      Current code registers PMUs for all possible uncore pci devices.
      This is not good because, on some machines, one or more uncore pci
      devices can be missing. The missing pci device make corresponding
      PMU unusable. Register the PMU only if the uncore device exists.
      
      Signed-off-by: default avatarYan, Zheng <zheng.z.yan@intel.com>
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: eranian@google.com
      Link: http://lkml.kernel.org/r/1409872109-31645-3-git-send-email-andi@firstfloor.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      513d793e
    • Yan, Zheng's avatar
      perf/x86/intel/uncore: Add Haswell-EP uncore support · e735b9db
      Yan, Zheng authored
      
      
      The uncore subsystem in Haswell-EP is similar to Sandy/Ivy
      Bridge-EP. There are some differences in config register
      encoding and pci device IDs. The Haswell-EP uncore also
      supports a few new events. Add the Haswell-EP driver to
      the snbep split driver.
      
      Signed-off-by: default avatarYan, Zheng <zheng.z.yan@intel.com>
      [ Add missing break. Add imc events. Add cbox nc/isoc/c6. ]
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: eranian@google.com
      Link: http://lkml.kernel.org/r/1409872109-31645-2-git-send-email-andi@firstfloor.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      e735b9db
    • Andi Kleen's avatar
      perf/x86/intel: Use Broadwell cache event list for Haswell · fdda3c4a
      Andi Kleen authored
      
      
      Use the newly added Broadwell cache event list for Haswell too.
      All Haswell and Broadwell events and offcore masks used in these lists
      are identical.
      
      However Haswell is very different from the Sandy Bridge
      list that was used previously. That fixes a wide range of mis-counting
      cache events.
      
      The node events are now only for retired memory events, so prefetching
      and speculative memory accesses are not included. They are PEBS
      capable now, which makes it much easier to sample for them, plus it's
      possible to create address maps with -d.
      
      The prefetch events are gone now. They way the hardware counts
      them is very misleading (some prefetches included, others not), so
      it seemed best to leave them out.
      
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: eranian@google.com
      Link: http://lkml.kernel.org/r/1409683455-29168-5-git-send-email-andi@firstfloor.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      fdda3c4a
    • Andi Kleen's avatar
      perf/x86: Add INST_RETIRED.ALL workarounds · c46e665f
      Andi Kleen authored
      
      
      On Broadwell INST_RETIRED.ALL cannot be used with any period
      that doesn't have the lowest 6 bits cleared. And the period
      should not be smaller than 128.
      
      Add a new callback to enforce this, and set it for Broadwell.
      
      This is erratum BDM57 and BDM11.
      
      How does this handle the case when an app requests a specific
      period with some of the bottom bits set
      
      The apps thinks it is sampling at X occurences per sample, when it is
      in fact at X - 63 (worst case).
      
      Short answer:
      
      Any useful instruction sampling period needs to be 4-6 orders
      of magnitude larger than 128, as an PMI every 128 instructions
      would instantly overwhelm the system and be throttled.
      So the +-64 error from this is really small compared to the
      period, much smaller than normal system jitter.
      
      Long answer:
      
      <write up by Peter:>
      
      IFF we guarantee perf_event_attr::sample_period >= 128.
      
      Suppose we start out with sample_period=192; then we'll set period_left
      to 192, we'll end up with left = 128 (we truncate the lower bits). We
      get an interrupt, find that period_left = 64 (>0 so we return 0 and
      don't get an overflow handler), up that to 128. Then we trigger again,
      at n=256. Then we find period_left = -64 (<=0 so we return 1 and do get
      an overflow). We increment with sample_period so we get left = 128. We
      fire again, at n=384, period_left = 0 (<=0 so we return 1 and get an
      overflow). And on and on.
      
      So while the individual interrupts are 'wrong' we get then with
      interval=256,128 in exactly the right ratio to average out at 192. And
      this works for everything >=128.
      
      So the num_samples*fixed_period thing is still entirely correct +- 127,
      which is good enough I'd say, as you already have that error anyhow.
      
      So no need to 'fix' the tools, al we need to do is refuse to create
      INST_RETIRED:ALL events with sample_period < 128.
      
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Kan Liang <kan.liang@intel.com>
      Cc: Maria Dimakopoulou <maria.n.dimakopoulou@gmail.com>
      Cc: Mark Davies <junk@eslaf.co.uk>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/r/1409683455-29168-4-git-send-email-andi@firstfloor.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      c46e665f
    • Andi Kleen's avatar
      perf/x86/intel: Add Broadwell core support · 86a349a2
      Andi Kleen authored
      
      
      Add Broadwell support for Broadwell Client to perf.  This is very
      similar to Haswell.  It uses a new cache event table, because there
      were various changes there.
      
      The constraint list has one new event that needs to be handled over
      Haswell.
      
      The PEBS event list is the same, so we reuse Haswell's.
      
      [fengguang.wu: make intel_bdw_event_constraints[] static]
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: eranian@google.com
      Link: http://lkml.kernel.org/r/1409683455-29168-3-git-send-email-andi@firstfloor.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      86a349a2
    • Andi Kleen's avatar
      perf/x86/intel: Document all Haswell models · d86c8eaf
      Andi Kleen authored
      
      
      Add names for each Haswell model as requested by Peter.
      
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: eranian@google.com
      Link: http://lkml.kernel.org/r/1409683455-29168-2-git-send-email-andi@firstfloor.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      d86c8eaf
    • Andi Kleen's avatar
      perf/x86/intel: Remove incorrect model number from Haswell perf · b7614685
      Andi Kleen authored
      
      
      71 is a Broadwell, not a Haswell. The model number was added
      by mistake earlier.
      
      Remove it for now, until it can be re-added later with
      real Broadwell support.
      
      In practice it does not cause a lot of issues because the Broadwell
      PMU is very similar to Haswell, but some details were wrong,
      and it's better to handle it correctly.
      
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: eranian@google.com
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Link: http://lkml.kernel.org/r/1409683455-29168-1-git-send-email-andi@firstfloor.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      b7614685
    • Jiri Olsa's avatar
      Revert "perf: Do not allow optimized switch for non-cloned events" · 802c8a61
      Jiri Olsa authored
      This reverts commit 1f9a7268.
      
      With the fix of the initial state for the cloned event we now correctly
      handle the error described in:
      
        1f9a7268
      
       perf: Do not allow optimized switch for non-cloned events
      
      so we can revert it.
      
      I made an automated test for this, but its not suitable for automated
      perf tests framework. It needs to be customized for each machine (the
      more cpu the higher numbers for GROUPS/WORKERS/BYTES) and it could take
      longer time to hit the issue.
      
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: http://lkml.kernel.org/r/20140910143535.GD2409@krava.brq.redhat.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      802c8a61
    • Jiri Olsa's avatar
      perf: Fix child event initial state setup · 1929def9
      Jiri Olsa authored
      
      
      Currently we initialize the child event based on the original
      parent state. This is wrong, because the original parent event
      (and its state) is not related to current fork and also could
      be already gone.
      
      We need to initialize the child state based on the immediate
      parent event state.
      
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: http://lkml.kernel.org/r/1410520708-19275-2-git-send-email-jolsa@kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      1929def9
    • Jiri Olsa's avatar
      perf: Do not POLLHUP event if it has children · dc633982
      Jiri Olsa authored
      
      
      Currently we return POLLHUP in event polling if the monitored
      process is done, but we didn't consider possible children,
      that might be still running and producing data.
      
      Before returning POLLHUP making sure that:
      
         1) the monitored task has exited and that
         2) we don't have any children to monitor
      
      Also adding parent wakeup when the child event is gone.
      
      Suggested-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1410520708-19275-1-git-send-email-jolsa@kernel.org
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      dc633982
  3. Sep 19, 2014
    • Ingo Molnar's avatar
      Merge tag 'perf-core-for-mingo' of... · 4f7cf3a9
      Ingo Molnar authored
      
      Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
      
      Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
      
      User visible changes:
      
        o Add +field argument support for --sort option (Jiri Olsa)
      
        o Do not access kallsyms when analyzing user binaries with 'probe' (Masami Hiramatsu)
      
        o Ignore stripped vmlinux and fallback to kallsyms (Anton Blanchard)
      
        o Add path to Ubuntu kernel debuginfo file (Anton Blanchard)
      
        o Disable kernel symbol demangling by default (Avi Kivity)
      
      Infrastructure changes:
      
        o More intel PT prep work, from Adrian Hunter, including:
      
          - Let a user specify a PMU event without any config terms
          - Add perf-with-kcore script
          - Let default config be defined for a PMU
          - Add perf_pmu__scan_file()
      
        o "perf kvm stat report" improvements by Alexander Yarygin:
          o  Save pid string in opts.target.pid
          o  Enable the target.system_wide flag
          o  Unify the title bar output
      
        o Fix build issue on powerpc when DWARF support is disabled (Anton Blanchard)
      
        o Allow to specify lib compile variable for spec usage (Jiri Olsa)
      
        o Fix build on ARM (Stephane Eranian)
      
        o Fix build on powerpc when DWARF support is disabled (Anton Blanchard)
      
        o Don't include sys/poll.h directly (Arnaldo Carvalho de Melo)
      
        o Use ring buffer consume method to look like other tools (Arnaldo Carvalho de Melo)
      
        o Allow to specify lib compile variable for spec usage (Jiri Olsa)
      
        o Fix GNU-only grep usage in Makefile (John Spencer)
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      4f7cf3a9
  4. Sep 18, 2014
    • Arnaldo Carvalho de Melo's avatar
      perf record: Use ring buffer consume method to look like other tools · e5685730
      Arnaldo Carvalho de Melo authored
      
      
      All builtins that consume events from perf's ring buffer now end up
      calling perf_evlist__mmap_consume(), which will allow unmapping the ring
      buffer when all the fds gets closed and all events in the buffer
      consumed.
      
      This is in preparation for the patchkit that will notice POLLHUP on
      perf events file descriptors.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@kernel.org>
      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-8vhaeeoq11ppz0713el4xcps@git.kernel.org
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e5685730
    • Masami Hiramatsu's avatar
      perf probe: Do not use dwfl_module_addrsym if dwarf_diename finds symbol name · 664fee3d
      Masami Hiramatsu authored
      
      
      Do not use dwfl_module_addrsym if dwarf_diename can find the symbol
      name, since dwfl_module_addrsym can be failed on shared libraries.
      
      Without this patch
        ----
        $ perf probe -x ../lib/traceevent/libtraceevent.so -V create_arg_op
        Failed to find symbol at 0x11df1
        Failed to find the address of create_arg_op
          Error: Failed to show vars.
        ----
      With this patch
        ----
        $ perf probe -x ../lib/traceevent/libtraceevent.so -V create_arg_op
        Available variables at create_arg_op
                @<create_arg_op+0>
                        enum filter_op_type     btype
                        struct filter_arg*      arg
        ----
      
      This bug was reported on linux-perf-users@vger.kernel.org.
      
      Reported-by: default avatardavid lerner <dlernerdroid@gmail.com>
      Signed-off-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Cc: david lerner <dlernerdroid@gmail.com>
      Cc: linux-perf-user@vger.kernel.org
      Cc: yrl.pp-manager.tt@hitachi.com
      Link: http://permalink.gmane.org/gmane.linux.kernel.perf.user/1691
      Link: http://lkml.kernel.org/r/20140917084101.3722.25299.stgit@kbuild-f20.novalocal
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      664fee3d
    • Masami Hiramatsu's avatar
      perf probe: Do not access kallsyms when analyzing user binaries · 2b394bc4
      Masami Hiramatsu authored
      
      
      Do not access kallsyms to show available variables and show source lines
      in user binaries.
      
      This behavior always requires the root privilege when sysctl sets
      kernel.kptr_restrict=1, but we don't need it just for analyzing user
      binaries.
      
      Without this patch (by normal user, kptr_restrict=1):
        ----
        $ perf probe -x ./perf -V add_cmdname
        Failed to init vmlinux path.
          Error: Failed to show vars.
        $ perf probe -x ./perf -L add_cmdname
        Failed to init vmlinux path.
          Error: Failed to show lines.
        ----
      
      With this patch:
        ----
        $ perf probe -x ./perf -V add_cmdname
        Available variables at add_cmdname
                @<perf_unknown_cmd_config+144>
                        (No matched variables)
                @<list_commands_in_dir+160>
                        (No matched variables)
                @<add_cmdname+0>
                        char*   name
                        size_t  len
                        struct cmdnames*        cmds
        $ perf probe -x ./perf -L add_cmdname
        <add_cmdname@/home/fedora/ksrc/linux-3/tools/perf/util/help.c:0>
              0  void add_cmdname(struct cmdnames *cmds, const char *name, size_t len)
              1  {
              2         struct cmdname *ent = malloc(sizeof(*ent) + len + 1);
      
              4         ent->len = len;
              5         memcpy(ent->name, name, len);
              6         ent->name[len] = 0;
        ...
        ----
      
      Signed-off-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Cc: david lerner <dlernerdroid@gmail.com>
      Cc: linux-perf-user@vger.kernel.org
      Cc: yrl.pp-manager.tt@hitachi.com
      Link: http://lkml.kernel.org/r/20140917084054.3722.73975.stgit@kbuild-f20.novalocal
      [ Added missing 'bool user' argument to the !DWARF show_line_range() stub ]
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      2b394bc4
    • Anton Blanchard's avatar
      perf symbols: Add path to Ubuntu kernel debuginfo file · c657f423
      Anton Blanchard authored
      
      
      Ubuntu places the kernel debuginfo in /usr/lib/debug/boot/vmlinux-*
      
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      echo Link: http://lkml.kernel.org/n/tip-`ranpwd -l 24`@git.kernel.org
      Link: http://lkml.kernel.org/r/20140909091152.2698c0f7@kryten
      [ Adapted it to use the perf.data file kernel version as in 0a7e6d1b
      
       ]
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      c657f423
    • Anton Blanchard's avatar
      perf symbols: Ignore stripped vmlinux and fallback to kallsyms · d0b0d040
      Anton Blanchard authored
      
      
      If a vmlinux is stripped, perf will use it and ignore kallsyms. We
      end up with useless profiles where everything maps to a few
      runtime symbols:
      
          63.39%       swapper  [kernel.kallsyms]   [k] hcall_real_table
           4.90%      beam.smp  [kernel.kallsyms]   [k] hcall_real_table
           4.44%      beam.smp  [kernel.kallsyms]   [k] __sched_text_start
           3.72%      beam.smp  [kernel.kallsyms]   [k] __run_at_kexec
      
      Detect this case and fallback to using kallsyms. This fixes the issue:
      
          62.81%       swapper  [kernel.kallsyms]   [k] snooze_loop
           4.44%      beam.smp  [kernel.kallsyms]   [k] __schedule
           0.91%      beam.smp  [kernel.kallsyms]   [k] _switch
           0.73%      beam.smp  [kernel.kallsyms]   [k] put_prev_entity
      
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/20140909085929.4a5a81f0@kryten
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      d0b0d040
    • Chanho Park's avatar
      perf tools: define _DEFAULT_SOURCE for glibc_2.20 · 512fe365
      Chanho Park authored
      
      
      _BSD_SOURCE was deprecated in favour of _DEFAULT_SOURCE since glibc
      2.20[1]. To avoid build warning on glibc2.20, _DEFAULT_SOURCE should
      also be defined.
      
      [1]: https://sourceware.org/glibc/wiki/Release/2.20
      
      Signed-off-by: default avatarChanho Park <chanho61.park@samsung.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1410487817-13403-1-git-send-email-chanho61.park@samsung.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      512fe365
    • Arnaldo Carvalho de Melo's avatar
      perf tools: Don't include sys/poll.h directly · a8fa4960
      Arnaldo Carvalho de Melo authored
      
      
      Include poll.h instead.
      
      Fixes the following warning in systems with musl's libc:
      
        /usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include
        <sys/poll.h> to <poll.h> [-Wcpp]
      
      Reported-by: default avatarJohn Spencer <maillist-linux@barfooze.de>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://thread.gmane.org/gmane.linux.kernel.perf.user/1687/focus=1690
      Link: http://lkml.kernel.org/n/tip-k4ocrq1de3fk146oevy346bi@git.kernel.org
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      a8fa4960
    • John Spencer's avatar
      perf tools: Fix GNU-only grep usage in Makefile · bf9e3e57
      John Spencer authored
      
      
      This makes it work with non-GNU grep's as well.
      
      Signed-off-by: default avatarJohn Spencer <maillist-linux@barfooze.de>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Link: http://thread.gmane.org/gmane.linux.kernel.perf.user/1686
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      bf9e3e57
    • Avi Kivity's avatar
      perf tools: Disable kernel symbol demangling by default · 763122ad
      Avi Kivity authored
      
      
      Some Linux symbols (for example __vt_event_wait) are interpreted by the
      demangler as C++ mangled names, which of course they aren't.
      
      Disable kernel symbol demangling by default to avoid this, and allow
      enabling it with a new option --demangle-kernel for those who wish it.
      
      Reported-by: default avatarJiri Olsa <jolsa@redhat.com>
      Signed-off-by: default avatarAvi Kivity <avi@cloudius-systems.com>
      Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Link: http://lkml.kernel.org/r/1410581705-26968-1-git-send-email-avi@cloudius-systems.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      763122ad
    • Stephane Eranian's avatar
      perf tool: fix compilation for ARM · 29a3ce31
      Stephane Eranian authored
      
      
      This patch fixes ARM compile of the perf tool.  The debug.h header file
      was missing from a couple of unwind related modules.
      
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20140905042103.GA3091@quad
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      29a3ce31
    • Adrian Hunter's avatar
      perf tools: Add perf_pmu__scan_file() · 7d4bdab5
      Adrian Hunter authored
      
      
      Add a function to scan a sysfs file within the pmu device directory.
      
      This will be used to read capability values from the PMU 'caps'
      subdirectory.
      
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/r/1406786474-9306-8-git-send-email-adrian.hunter@intel.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      7d4bdab5
    • Adrian Hunter's avatar
      perf tools: Let default config be defined for a PMU · dc0a6202
      Adrian Hunter authored
      
      
      This allows default config terms to be provided for a PMU. So, for
      example, when the Intel PT PMU is added, it will be possible to specify:
      
      	intel_pt//
      
      which will be the same as:
      
      	intel_pt/tsc=1,noretcomp=0/
      
      meaning that the trace should contain TSC timestamps and perform 'return
      compression'.
      
      An important consideration of this patch is that it must be possible to
      overwrite the default values.  That has meant changing the logic so that
      a zero value can replace a non-zero value.
      
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/r/1406786474-9306-7-git-send-email-adrian.hunter@intel.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      dc0a6202
    • Adrian Hunter's avatar
      perf tools: Add perf-with-kcore script · c501e90b
      Adrian Hunter authored
      
      
      Decoding an Intel PT trace of the kernel requires an accurate kernel
      object image.  This is provided by making a copy of kcore.  However the
      copy needs to be made under the same conditions as the original
      recording, and then it needs to be associated with the perf.data file.
      The perf-with-kcore script does that.
      
      The script also checks the permissions on the buildid cache and can be
      used to fix them.  That is needed for distributions where root does not
      have a home directory and consequently writes to the same buildid cache
      as the user, resulting in cached files that the user does not have
      access to.
      
      Example:
      
      $ ./perf-with-kcore
      Usage: perf-with-kcore <perf sub-command> <perf.data directory> [<sub-command options> [ -- <workload>]]
             <perf sub-command> can be record, script, report or inject
         or: perf-with-kcore fix_buildid_cache_permissions
      $ ./perf-with-kcore record pt_uname -e intel_pt// -- uname
      Recording
      Using /home/ahunter/bin/perf
      perf version 3.15.rc3.g4549ba
      /home/ahunter/bin/perf record -o pt_uname/perf.data -e intel_pt//  -- uname
      Linux
      [ perf record: Woken up 3 times to write data ]
      [ perf record: Captured and wrote 0.023 MB pt_uname/perf.data ]
      Copying kcore
      [sudo] password for ahunter:
      Done
      $ tools/perf/perf-with-kcore.sh script pt_uname | head
      Using /home/ahunter/bin/perf
      perf version 3.15.rc3.g4549ba
      /home/ahunter/bin/perf script -i pt_uname/perf.data --kallsyms=pt_uname/kcore_dir/kallsyms
               swapper     0 [002] 161533.969666: sched:sched_switch: swapper/2:0 [120] R ==> perf:11316 [120]
                :11315 11315 [003] 161533.969704: sched:sched_switch: perf:11315 [120] S ==> swapper/3:0 [120]
                :11316 11316 [002] 161533.969783: sched:sched_switch: perf:11316 [120] R ==> migration/2:33 [0]
                   :33    33 [002] 161533.969791: sched:sched_switch: migration/2:33 [0] S ==> swapper/2:0 [120]
               swapper     0 [003] 161533.969792: sched:sched_switch: swapper/3:0 [120] R ==> perf:11316 [120]
                :11316 11316 [003] 161533.970062: branches:                 0 [unknown] ([unknown]) => ffffffff810532fa native_write_msr_safe ([kernel.kallsyms])
                :11316 11316 [003] 161533.970062: branches:  ffffffff810532fd native_write_msr_safe ([kernel.kallsyms]) => ffffffff81035b31 pt_config_start ([kernel.kallsyms])
      
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/r/1406786474-9306-30-git-send-email-adrian.hunter@intel.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      c501e90b
    • Adrian Hunter's avatar
      perf tools: Let a user specify a PMU event without any config terms · ad962273
      Adrian Hunter authored
      
      
      This enables a PMU event to be specified in the form:
      
      	pmu//
      
      which is effectively the same as:
      
      	pmu/config=0/
      
      This patch is a precursor to defining default config for a PMU.
      
      Further explanation extracted from lkml thread:
      
      Imagine that the 'tsc' term did not exist.
      
      Intel PT trace data would not contain TSC packets, and the decoder would
      not know how to decode them.
      
      Then imagine that a new version of the hardware adds 'tsc'.
      
      It is such a useful feature that we want it by default, but older
      versions of the tools don't know how to decode it, so the kernel cannot
      turn it on by default.
      
      It is similar to why the kernel does not select perf_event_attr.mmap2 by
      default.
      
      The kernel doesn't know whether the tool supports it.
      
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/r/1408129739-17368-6-git-send-email-adrian.hunter@intel.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      ad962273
    • Jiri Olsa's avatar
      perf tools: Allow to specify lib compile variable for spec usage · 6997af72
      Jiri Olsa authored
      
      
      We need a way to specify $(lib) part of the installation path for
      traceevent plugin libraries. Currently we use 'lib64' for x86_64 and
      'lib' otherwise.
      
      Instead of listing all possible values, this change allows the rpm spec
      code to specify the correct $(lib) part based on processed architecture,
      like
      
        $ make ... lib=%{_lib}
      
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Tested-by: default avatarKyle McMartin <kyle@mcmartin.ca>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1408978552-17131-1-git-send-email-jolsa@kernel.org
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      6997af72
    • Alexander Yarygin's avatar
      perf kvm stat report: Unify the title bar output · 1f3e5b55
      Alexander Yarygin authored
      
      
      The 'live' command prints additional information to the "Analyze events
      for " title bar about the current target.  Let's print the same title
      for the 'report' command.
      
      Signed-off-by: default avatarAlexander Yarygin <yarygin@linux.vnet.ibm.com>
      Acked-by: default avatarDavid Ahern <dsahern@gmail.com>
      Cc: Christian Borntraeger <borntraeger@de.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1409579095-12963-4-git-send-email-yarygin@linux.vnet.ibm.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      1f3e5b55
    • Alexander Yarygin's avatar
      perf kvm stat report: Enable the target.system_wide flag · f181957c
      Alexander Yarygin authored
      
      
      The 'perf kvm stat report' command can be used to analyze events either
      for system wide or for specific pids.
      
      Let's enable kvm->opts.target.system_wide flag when 'report' command is
      running for system-wide analyzing. This helps to sync kvm->opts.target
      values in 'report' and 'live' commands.
      
      Signed-off-by: default avatarAlexander Yarygin <yarygin@linux.vnet.ibm.com>
      Acked-by: default avatarDavid Ahern <dsahern@gmail.com>
      Cc: Christian Borntraeger <borntraeger@de.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1409579095-12963-3-git-send-email-yarygin@linux.vnet.ibm.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      f181957c
    • Alexander Yarygin's avatar
      perf kvm stat report: Save pid string in opts.target.pid · 3ae4a76a
      Alexander Yarygin authored
      
      
      The 'perf kvm stat report' command uses the kvm->pid_str field to keep
      the value of the --pid option. Let's use kvm->opts.target.pid instead.
      
      Signed-off-by: default avatarAlexander Yarygin <yarygin@linux.vnet.ibm.com>
      Acked-by: default avatarDavid Ahern <dsahern@gmail.com>
      Cc: Christian Borntraeger <borntraeger@de.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1409579095-12963-2-git-send-email-yarygin@linux.vnet.ibm.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      3ae4a76a
    • Anton Blanchard's avatar
      perf tools powerpc: Fix build issue when DWARF support is disabled · 65ccb4fa
      Anton Blanchard authored
      
      
      The powerpc skip callchain code uses DWARF, so we must disable it if
      DWARF is disabled.
      
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
      Link: http://lkml.kernel.org/r/20140825182506.2be6512d@kryten
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      65ccb4fa
    • Jiri Olsa's avatar
      perf tools: Add +field argument support for --sort option · 1a1c0ffb
      Jiri Olsa authored
      
      
      Adding support to add field(s) to default sort order via using the '+'
      prefix, like for report:
      
        $ perf report
        Samples: 2K of event 'cycles', Event count (approx.): 882172583
        Overhead  Command  Shared Object        Symbol
           7.39%  swapper  [kernel.kallsyms]    [k] intel_idle
           1.97%  firefox  libpthread-2.17.so   [.] pthread_mutex_lock
           1.39%  firefox  [snd_hda_intel]      [k] azx_get_position
           1.11%  firefox  libpthread-2.17.so   [.] pthread_mutex_unlock
      
        $ perf report -s +cpu
        Samples: 2K of event 'cycles', Event count (approx.): 882172583
        Overhead  Command  Shared Object        Symbol                  CPU
           2.89%  swapper  [kernel.kallsyms]    [k] intel_idle          000
           2.61%  swapper  [kernel.kallsyms]    [k] intel_idle          002
           1.20%  swapper  [kernel.kallsyms]    [k] intel_idle          001
           0.82%  firefox  libpthread-2.17.so   [.] pthread_mutex_lock  002
      
      Works in general for commands using --sort option.
      
      v2 with changes suggested:
        - Use dynamic memory instead static buffer
        - Fix error message typo
      
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Jean Pihet <jean.pihet@linaro.org>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/20140823125948.GA1193@krava.brq.redhat.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      1a1c0ffb