All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V8 0/4] perf tools: pmu event new style format fix
@ 2014-10-07 15:08 kan.liang
  2014-10-07 15:08 ` [PATCH V8 1/4] Revert "perf tools: Default to cpu// for events v5" kan.liang
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: kan.liang @ 2014-10-07 15:08 UTC (permalink / raw)
  To: jolsa; +Cc: linux-kernel, ak, acme, Kan Liang

From: Kan Liang <kan.liang@intel.com>

There are two types of pmu event stytle formats, "pmu_event_name"
or "cpu/pmu_event_name/". However, there is a bug on supporting these
two formats, especially when they mixed with other perf events.
The patch set intends to fix this issue.

The patch set has been tested by perf automated test "./perf test parse -v"
on haswell, ivybridge and Romley platform.
The patch set also has been tested on haswell by the following script.
(Note: please make sure that your test system support TSX and
L1-dcache-loads events. Otherwise, you may want to change the events
to other pmu events.)

[lk@localhost ~]$ cat perf_style_test.sh
#hardware events + kernel pmu event with different style
perf stat -x, -e cycles,mem-stores,tx-start sleep 2
perf stat -x, -e cpu-cycles,cycles-ct,cycles-t sleep 2
perf stat -x, -e cycles,cpu/cycles-ct/,cpu/cycles-t/ sleep 2
perf stat -x, -e instructions,cpu/tx-start/ sleep 2
perf stat -x, -e '{cycles,tx-start}' sleep 2
perf stat -x, -e '{cycles,cpu/tx-start/}' sleep 2

#HW Cache event + kernel pmu event with different style
perf stat -x, -e L1-dcache-loads,cpu/mem-stores/,tx-start sleep 2
perf stat -x, -e L1-dcache-loads,mem-stores,cpu/tx-start/ sleep 2
perf stat -x, -e '{L1-dcache-loads,mem-stores}' sleep 2
perf stat -x, -e '{L1-dcache-loads,cpu/tx-start/}' sleep 2

#Raw event + kernel pmu event with different style:
perf stat -x, -e cpu/event=0xc0,umask=0x00/,mem-loads,cpu/mem-stores/ sleep 2
perf stat -x, -e cpu/event=0xc0,umask=0x00/,tx-start,cpu/el-start/ sleep 2
perf stat -x, -e '{cpu/event=0xc0,umask=0x00/,tx-start}' sleep 2

Changes since V1:
Read kernel PMU events from sysfs at runtime

Changes since V2:
Use strlcpy to replace strncpy

Changes since V3:
rebase to git.kernel.org/pub/scm/linux/kernel/git/acme/linux perf/core

Changes since V4:
scan kernel pmu events from sysfs only needed
rename the init/check/clenup functions and related struct.
allocate each symbol string separatelly
Use ALLOC_LIST

Changes since V5:
Using perf_pmu__find to instead of perf_pmu__scan
Don't scan all the time if the system doesn't support kernel pmu events

Changes since V6:
Add test case in automated tests suite
Use strdup and macro to refine the code
Add sep_dc for PMU event to support PE_MODIFIER_EVENT
Some minor changes for code style

Changes since V7:
Add allocation failure check

Kan Liang (4):
  Revert "perf tools: Default to cpu// for events v5"
  perf tools: parse the pmu event prefix and suffix
  perf tools: Add support to new style format of kernel PMU event
  perf tools: Add test case for pmu event new style format

 tools/perf/tests/parse-events.c        |  36 +++++++++
 tools/perf/util/include/linux/string.h |   1 -
 tools/perf/util/parse-events.c         | 133 +++++++++++++++++++++++++++------
 tools/perf/util/parse-events.h         |  14 ++++
 tools/perf/util/parse-events.l         |  30 +++++++-
 tools/perf/util/parse-events.y         |  40 ++++++++++
 tools/perf/util/pmu.c                  |  10 ---
 tools/perf/util/pmu.h                  |  10 +++
 tools/perf/util/string.c               |  24 ------
 9 files changed, 240 insertions(+), 58 deletions(-)

-- 
1.8.3.2


^ permalink raw reply	[flat|nested] 15+ messages in thread
* [PATCH] perf tools: Do not call pevent_free_format when deleting tracepoint
@ 2014-11-04 10:55 Jiri Olsa
  0 siblings, 0 replies; 15+ messages in thread
From: Jiri Olsa @ 2014-11-04 10:55 UTC (permalink / raw)
  To: linux-kernel
  Cc: Jiri Olsa, Steven Rostedt, Corey Ashford, David Ahern,
	Frederic Weisbecker, Ingo Molnar, Namhyung Kim, Paul Mackerras,
	Peter Zijlstra, Arnaldo Carvalho de Melo

The libtraceevent library's main handle 'struct pevent' holds
pointers of every event that was added to it via functions:
  pevent_parse_format
  pevent_parse_event

We can't release struct event_format (call pevent_free_format)
separately, because that breaks that pointers array mentioned
above and another add_event call could end up with segfault.

All added events are released within the handle cleanup
in pevent_free.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.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: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/evsel.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 2f9e68025ede..12b4396c7175 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -853,8 +853,6 @@ void perf_evsel__exit(struct perf_evsel *evsel)
 	perf_evsel__free_id(evsel);
 	close_cgroup(evsel->cgrp);
 	zfree(&evsel->group_name);
-	if (evsel->tp_format)
-		pevent_free_format(evsel->tp_format);
 	zfree(&evsel->name);
 	perf_evsel__object.fini(evsel);
 }
-- 
1.9.3


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

end of thread, other threads:[~2014-11-04 10:56 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-07 15:08 [PATCH V8 0/4] perf tools: pmu event new style format fix kan.liang
2014-10-07 15:08 ` [PATCH V8 1/4] Revert "perf tools: Default to cpu// for events v5" kan.liang
2014-10-16  5:22   ` [tip:perf/urgent] " tip-bot for Kan Liang
2014-10-07 15:08 ` [PATCH V8 2/4] perf tools: parse the pmu event prefix and suffix kan.liang
2014-10-16  5:22   ` [tip:perf/urgent] perf tools: Parse " tip-bot for Kan Liang
2014-10-07 15:08 ` [PATCH V8 3/4] perf tools: Add support to new style format of kernel PMU event kan.liang
2014-10-16  5:22   ` [tip:perf/urgent] " tip-bot for Kan Liang
2014-10-07 15:08 ` [PATCH V8 4/4] perf tools: Add test case for pmu event new style format kan.liang
2014-10-16  5:23   ` [tip:perf/urgent] perf test: " tip-bot for Kan Liang
2014-10-13 15:43 ` [PATCH V8 0/4] perf tools: pmu event new style format fix Liang, Kan
2014-10-13 17:05   ` Jiri Olsa
2014-10-14 14:02   ` [PATCH] perf tools: Do not call pevent_free_format when deleting tracepoint Jiri Olsa
2014-10-15 15:00 ` [PATCH V8 0/4] perf tools: pmu event new style format fix Jiri Olsa
2014-10-15 19:13   ` Arnaldo Carvalho de Melo
  -- strict thread matches above, loose matches on Subject: below --
2014-11-04 10:55 [PATCH] perf tools: Do not call pevent_free_format when deleting tracepoint Jiri Olsa

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.