From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753798AbbC3Tkw (ORCPT ); Mon, 30 Mar 2015 15:40:52 -0400 Received: from mail.kernel.org ([198.145.29.136]:52604 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753775AbbC3Tkr (ORCPT ); Mon, 30 Mar 2015 15:40:47 -0400 Date: Mon, 30 Mar 2015 16:40:55 -0300 From: Arnaldo Carvalho de Melo To: David Ahern Cc: linux-kernel@vger.kernel.org, Don Zickus , Joe Mario , Jiri Olsa , Ingo Molnar , Peter Zijlstra Subject: Re: [PATCH v2 2/2] perf tool: Fix ppid for synthesized fork events Message-ID: <20150330194055.GG32560@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1427739642-17961-1-git-send-email-dsahern@gmail.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Mon, Mar 30, 2015 at 12:20:42PM -0600, David Ahern escreveu: Some nits below: > tools/perf/util/event.c | 92 ++++++++++++++++++++++++++++++------------------- > 1 file changed, 57 insertions(+), 35 deletions(-) > > diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c > @@ -81,6 +84,7 @@ static pid_t perf_event__get_comm_tgid(pid_t pid, char *comm, size_t len) > > name = strstr(bf, "Name:"); > tgids = strstr(bf, "Tgid:"); > + ppids = strstr(bf, "PPid:"); can't we make this: ppids = strstr(tgids, "PPid:"); To speed it up a teeny little bit? 8-) > if (name) { > name += 5; /* strlen("Name:") */ > @@ -109,32 +113,51 @@ static pid_t perf_event__get_comm_tgid(pid_t pid, char *comm, size_t len) > if (nl) > *nl = '\0'; > > - tgid = atoi(tgids); > + *tgid = atoi(tgids); > > } else > pr_debug("Tgid: string not found for pid %d\n", pid); > > - return tgid; > + if (ppids) { > + ppids += 5; /* strlen("PPid:") */ > + > + while (*ppids && isspace(*ppids)) > + ++ppids; The above could be simplified to: while (isspace(*ppids)) ++ppids; $ cat isspace.c #include #include int main(void) { return printf("isspace('\\0')=%d\n", isspace('\0')); } $ ./isspace isspace('\0')=0 $ > + nl = strchr(ppids, '\n'); > + if (nl) > + *nl = '\0'; We also don't need to find and zero this '\n', as: $ cat atoi.c #include #include int main(void) { return printf("atoi(\"1234\\n\")=%d\n", atoi("1234\n")); } $ ./atoi atoi("1234\n")=1234 $ > + if (machine__is_host(machine)) { > + if (perf_event__get_comm_ids(pid, event->comm.comm, > + sizeof(event->comm.comm), > + tgid, ppid) != 0) { > + return -1; > + } > + } else > + *tgid = machine->pid; Somebody, I think PeterZ and also Ingo, routinely asks for having {} on the else part of an if that has {}, please do so. - Arnaldo