linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/16] perf: add support for parameterized events from sysfs (powerpc 24x7)
@ 2014-05-28  0:21 Cody P Schafer
  2014-05-28  0:21 ` [PATCH 01/16] tools/perf: allow overriding sysfs and proc finding with env var Cody P Schafer
                   ` (15 more replies)
  0 siblings, 16 replies; 26+ messages in thread
From: Cody P Schafer @ 2014-05-28  0:21 UTC (permalink / raw)
  To: LKML, Linux PPC, Adrian Hunter, Andi Kleen, Anshuman Khandual,
	Arnaldo Carvalho de Melo, Benjamin Herrenschmidt,
	Borislav Petkov, Cody P Schafer, David Ahern, Ingo Molnar,
	Jiri Olsa, Michael Ellerman, Namhyung Kim, Peter Zijlstra,
	Runzhen Wang, Stephane Eranian, Sukadev Bhattiprolu
  Cc: linux-doc

What this patchset does:

 - the first patch (override sysfs in tools/perf via SYSFS_PATH) was sent out
   previously, but needed a resend anyhow. Having it is useful for testing the
   later changes to tools/perf.
 - the second patch is a bugfix to the powerpc hv-24x7 code which was
   previously sent out, which is a good idea to have when testing these patches
   on POWER8 hardware.

 - document perf sysfs and the changes to add parameterized events
   - semi-notably: removes the growing list of specific POWER cpu events and
     begins documenting them generically, much like the docs for
     /sys/modules/MODULENAME do for modules.
 - tools/perf changes to support parameterized events
 - export some parameterized events from the powerpc pmus hv_24x7 and hv_gpci

Description of "event parameters" from the documentation patch:

    Event parameters are a basic way for partial events to be specified in
    sysfs with per-event names given to the fields that need to be filled in
    when using a particular event.

    It is intended for supporting cases where the single 'cpu' parameter is
    insufficient. For example, POWER 8 has events for physical
    sockets/cores/cpus that are accessible from with virtual machines. To
    keep using the single 'cpu' parameter we'd need to perform a mapping
    between Linux's cpus and the physical machine's cpus (in this case
    Linux is running under a hypervisor). This isn't possible because
    bindings between our cpus and physical cpus may not be fixed, and we
    probably won't have a "cpu" on each physical cpu.

Description of the sysfs contents when events are parameterized (copied from an
included patch):

	Examples:

		domain=0x1,offset=0x8,starting_index=phys_cpu

	In the case of the last example, a value replacing "phys_cpu"
	would need to be provided by the user selecting the particular
	event. This is refered to as "event parameterization". All
	non-numerical values indicate an event parameter.

Notes on how perf-list displays parameterized events (and how to use them,
again culled from an included patch):

	PARAMETERIZED EVENTS
	--------------------

	Some pmu events listed by 'perf-list' will be displayed with '?' in them. For
	example:

	  hv_gpci/dtbp_ptitc,phys_processor_idx=?/

	This means that when provided as an event, a value for phys_processor_idx must
	also be supplied. For example:

	  perf stat -e 'hv_gpci/dtbp_ptitc,phys_processor_idx=0x2/' ...


Cody P Schafer (16):
  tools/perf: allow overriding sysfs and proc finding with env var
  powerpc/perf/hv-24x7: use kmem_cache instead of aligned stack
    allocations
  perf Documentation: sysfs events/ interfaces
  perf Documentation: remove duplicated docs for powerpc cpu specific
    events
  perf Documentation: add event parameters
  tools/perf: annotate list_head with type info
  tools/perf: support parsing parameterized events
  tools/perf: extend format_alias() to include event parameters
  tools/perf: document parameterized events and note symbolically formed
    events
  perf: provide sysfs_show for struct perf_pmu_events_attr
  byteorder: provide a linux/byteorder.h with {be,le}_to_cpu() and
    cpu_to_{be,le}() macros
  powerpc/perf/hv-24x7: parse catalog and populate sysfs with events
  powerpc/perf/hv-24x7: Documentaion for new sysfs entries which expose
    descriptions
  perf: add PMU_EVENT_ATTR_STRING() helper
  powerpc/perf/{hv-gpci,hv-common}: generate requests with counters
    annotated
  powerpc/perf/hv-gpci: add the remaining gpci requests

 .../testing/sysfs-bus-event_source-devices-events  | 617 ++--------------
 .../testing/sysfs-bus-event_source-devices-hv_24x7 |  22 +
 arch/powerpc/perf/hv-24x7-catalog.h                |  25 +
 arch/powerpc/perf/hv-24x7-domains.h                |  19 +
 arch/powerpc/perf/hv-24x7.c                        | 812 ++++++++++++++++++++-
 arch/powerpc/perf/hv-24x7.h                        |  12 +-
 arch/powerpc/perf/hv-common.c                      |  10 +-
 arch/powerpc/perf/hv-gpci-requests.h               | 258 +++++++
 arch/powerpc/perf/hv-gpci.c                        |   8 +
 arch/powerpc/perf/hv-gpci.h                        |  37 +-
 arch/powerpc/perf/req-gen/_begin.h                 |  13 +
 arch/powerpc/perf/req-gen/_clear.h                 |   5 +
 arch/powerpc/perf/req-gen/_end.h                   |   4 +
 arch/powerpc/perf/req-gen/_request-begin.h         |  15 +
 arch/powerpc/perf/req-gen/_request-end.h           |   8 +
 arch/powerpc/perf/req-gen/perf.h                   | 155 ++++
 include/linux/byteorder.h                          |  34 +
 include/linux/perf_event.h                         |  10 +
 kernel/events/core.c                               |   8 +
 tools/lib/api/fs/fs.c                              |  43 +-
 tools/perf/Documentation/perf-list.txt             |  13 +
 tools/perf/Documentation/perf-record.txt           |   5 +
 tools/perf/util/parse-events.h                     |   1 +
 tools/perf/util/pmu.c                              |  85 ++-
 tools/perf/util/pmu.h                              |   6 +-
 25 files changed, 1589 insertions(+), 636 deletions(-)
 create mode 100644 arch/powerpc/perf/hv-24x7-domains.h
 create mode 100644 arch/powerpc/perf/hv-gpci-requests.h
 create mode 100644 arch/powerpc/perf/req-gen/_begin.h
 create mode 100644 arch/powerpc/perf/req-gen/_clear.h
 create mode 100644 arch/powerpc/perf/req-gen/_end.h
 create mode 100644 arch/powerpc/perf/req-gen/_request-begin.h
 create mode 100644 arch/powerpc/perf/req-gen/_request-end.h
 create mode 100644 arch/powerpc/perf/req-gen/perf.h
 create mode 100644 include/linux/byteorder.h

-- 
1.9.3


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2014-06-05 14:31 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-28  0:21 [PATCH 00/16] perf: add support for parameterized events from sysfs (powerpc 24x7) Cody P Schafer
2014-05-28  0:21 ` [PATCH 01/16] tools/perf: allow overriding sysfs and proc finding with env var Cody P Schafer
2014-06-05 14:31   ` [tip:perf/core] perf tools: Allow " tip-bot for Cody P Schafer
2014-05-28  0:21 ` [PATCH 02/16] powerpc/perf/hv-24x7: use kmem_cache instead of aligned stack allocations Cody P Schafer
2014-05-28  0:21 ` [PATCH 03/16] perf Documentation: sysfs events/ interfaces Cody P Schafer
2014-05-28  0:21 ` [PATCH 04/16] perf Documentation: remove duplicated docs for powerpc cpu specific events Cody P Schafer
2014-05-28  0:22 ` [PATCH 05/16] perf Documentation: add event parameters Cody P Schafer
2014-05-28  0:22 ` [PATCH 06/16] tools/perf: annotate list_head with type info Cody P Schafer
2014-05-28  0:22 ` [PATCH 07/16] tools/perf: support parsing parameterized events Cody P Schafer
2014-05-28  0:22 ` [PATCH 08/16] tools/perf: extend format_alias() to include event parameters Cody P Schafer
2014-05-28  0:22 ` [PATCH 09/16] tools/perf: document parameterized events and note symbolically formed events Cody P Schafer
2014-05-28  0:22 ` [PATCH 10/16] perf: provide sysfs_show for struct perf_pmu_events_attr Cody P Schafer
2014-05-28  0:22 ` [PATCH 11/16] byteorder: provide a linux/byteorder.h with {be,le}_to_cpu() and cpu_to_{be,le}() macros Cody P Schafer
2014-05-28  0:44   ` Joe Perches
2014-05-28 22:07     ` Cody P Schafer
2014-05-28  8:45   ` [PATCH 11/16] byteorder: provide a linux/byteorder.h with {be, le}_to_cpu() and cpu_to_{be, le}() macros David Laight
2014-05-28 22:05     ` Cody P Schafer
2014-05-28 22:11       ` Cody P Schafer
2014-05-28 23:00         ` Joe Perches
2014-05-28 23:26           ` Cody P Schafer
2014-05-29  8:36           ` David Laight
2014-05-28  0:22 ` [PATCH 12/16] powerpc/perf/hv-24x7: parse catalog and populate sysfs with events Cody P Schafer
2014-05-28  0:22 ` [PATCH 13/16] powerpc/perf/hv-24x7: Documentaion for new sysfs entries which expose descriptions Cody P Schafer
2014-05-28  0:22 ` [PATCH 14/16] perf: add PMU_EVENT_ATTR_STRING() helper Cody P Schafer
2014-05-28  0:22 ` [PATCH 15/16] powerpc/perf/{hv-gpci,hv-common}: generate requests with counters annotated Cody P Schafer
2014-05-28  0:22 ` [PATCH 16/16] powerpc/perf/hv-gpci: add the remaining gpci requests Cody P Schafer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).