From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755414AbcBXPBt (ORCPT ); Wed, 24 Feb 2016 10:01:49 -0500 Received: from mx1.redhat.com ([209.132.183.28]:44650 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753032AbcBXPBs (ORCPT ); Wed, 24 Feb 2016 10:01:48 -0500 Date: Wed, 24 Feb 2016 16:01:38 +0100 From: Jiri Olsa To: Wang Nan Cc: Alexei Starovoitov , Arnaldo Carvalho de Melo , Arnaldo Carvalho de Melo , Brendan Gregg , Adrian Hunter , Cody P Schafer , "David S. Miller" , He Kuang , =?iso-8859-1?Q?J=E9r=E9mie?= Galarneau , Jiri Olsa , Kirill Smelkov , Li Zefan , Masami Hiramatsu , Namhyung Kim , Peter Zijlstra , pi3orama@163.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH 30/48] perf record: Generate tracking events for process forked by perf Message-ID: <20160224150138.GC12114@krava.redhat.com> References: <1456132275-98875-1-git-send-email-wangnan0@huawei.com> <1456132275-98875-31-git-send-email-wangnan0@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1456132275-98875-31-git-send-email-wangnan0@huawei.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Feb 22, 2016 at 09:10:57AM +0000, Wang Nan wrote: > With 'perf record --switch-output' without -a, record__synthesize() in > record__switch_output() won't generate tracking events because there's > no thread_map in evlist. Which causes newly created perf.data doesn't > contain map and comm information. > > This patch creates a fake thread_map and directly call > perf_event__synthesize_thread_map() for those events. > > Signed-off-by: Wang Nan > Signed-off-by: He Kuang > Cc: Arnaldo Carvalho de Melo > Cc: Jiri Olsa > Cc: Masami Hiramatsu > Cc: Namhyung Kim > Cc: Zefan Li > Cc: pi3orama@163.com > --- > tools/perf/builtin-record.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c > index 3a11102..7d4d8bf 100644 > --- a/tools/perf/builtin-record.c > +++ b/tools/perf/builtin-record.c > @@ -567,6 +567,23 @@ record__switch_output(struct record *rec, bool at_exit) > perf_session__create_kernel_maps(rec->session); > perf_session__set_id_hdr_size(rec->session); > record__synthesize(rec); > + could you please comment from changelog in here > + if (target__none(&rec->opts.target)) { also this would be better in separate function: > + struct { > + struct thread_map map; > + struct thread_map_data map_data; > + } thread_map; > + > + thread_map.map.nr = 1; > + thread_map.map.map[0].pid = rec->evlist->workload.pid; > + thread_map.map.map[0].comm = NULL; > + perf_event__synthesize_thread_map(&rec->tool, > + &thread_map.map, > + process_synthesized_event, > + &rec->session->machines.host, > + rec->opts.sample_address, > + rec->opts.proc_map_timeout); > + } > } > return fd; > } > -- > 1.8.3.4 >