Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1231155
| From | Namhyung Kim <namhyung@kernel.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH v2] perf record: Synthesize COMM event for a command line workload |
| Date | 2015-09-23 07:10 +0200 |
| Message-ID | <qbKtA-2BZ-3@gated-at.bofh.it> (permalink) |
| References | <qbjMK-64I-13@gated-at.bofh.it> <qbBqi-6hK-7@gated-at.bofh.it> <qbBJH-6EK-59@gated-at.bofh.it> <qbIBr-8lQ-1@gated-at.bofh.it> <qbKtA-2BZ-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Wed, Sep 23, 2015 at 12:09:20AM -0300, Arnaldo Carvalho de Melo wrote:
> Le 23 sept. 2015 12:04 AM, "Namhyung Kim" <namhyung@kernel.org> a écrit :
> >
> > Hi Arnaldo,
> >
> > On Tue, Sep 22, 2015 at 04:48:25PM -0300, Arnaldo Carvalho de Melo wrote:
> > > Humm, I think it is working by accident, as you're not allocating space
> > > for machine->id_hdr_size, please take a look at
> > > perf_event__synthesize_thread_map().
> > >
> > > Right now its not a problem this line in perf_event__prepare_comm():
> > >
> > > memset(event->comm.comm + size, 0, machine->id_hdr_size);
> > >
> > > Because perf_event is an union and some of its elements, like mmap/mmap2
> > > have that PATH_MAX part, but its just a matter of the id_hdr_size
> > > becoming bigger than that and we'll have a problem...
> >
> > Right. I'll send a fix to include the id_hdr part.
>
> Thanks!
From 10123021c4e55f14d3bb8e6cc576694bb76d6699 Mon Sep 17 00:00:00 2001
From: Namhyung Kim <namhyung@kernel.org>
Date: Wed, 23 Sep 2015 11:51:40 +0900
Subject: [PATCH] perf record: Allocate area for sample_id_hdr in a synthesized
comm event
A previous patch added a synthesized comm event for forked child
process but it missed that the event should contain area for
sample_id_hdr at the end. It worked by accident since the perf_event
union contains bigger event structs like mmap_events.
This patch fixes it by dynamically allocating event struct including
those area like in perf_event__synthesize_thread_map().
Reported-by: Arnaldo Carvalho de Melo <acme@kernel.org>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/builtin-record.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 6d8302d4612f..5e01c070dbf2 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -637,7 +637,13 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
* Let the child rip
*/
if (forks) {
- union perf_event event;
+ union perf_event *event;
+
+ event = malloc(sizeof(event->comm) + machine->id_hdr_size);
+ if (event == NULL) {
+ err = -ENOMEM;
+ goto out_child;
+ }
/*
* Some H/W events are generated before COMM event
@@ -645,10 +651,11 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
* cannot see a correct process name for those events.
* Synthesize COMM event to prevent it.
*/
- perf_event__synthesize_comm(tool, &event,
+ perf_event__synthesize_comm(tool, event,
rec->evlist->workload.pid,
process_synthesized_event,
- &session->machines.host);
+ machine);
+ free(event);
perf_evlist__start_workload(rec->evlist);
}
--
2.5.0
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
Re: [PATCH v2] perf record: Synthesize COMM event for a command line workload Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-22 21:30 +0200
Re: [PATCH v2] perf record: Synthesize COMM event for a command line workload Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-22 21:50 +0200
Re: [PATCH v2] perf record: Synthesize COMM event for a command line workload Namhyung Kim <namhyung@kernel.org> - 2015-09-23 05:10 +0200
Re: [PATCH v2] perf record: Synthesize COMM event for a command line workload Namhyung Kim <namhyung@kernel.org> - 2015-09-23 07:10 +0200
csiph-web