From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2225 invoked by alias); 20 Dec 2013 18:00:43 -0000 Mailing-List: contact systemtap-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: systemtap-owner@sourceware.org Received: (qmail 2210 invoked by uid 89); 20 Dec 2013 18:00:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-qc0-f179.google.com Received: from mail-qc0-f179.google.com (HELO mail-qc0-f179.google.com) (209.85.216.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Fri, 20 Dec 2013 18:00:42 +0000 Received: by mail-qc0-f179.google.com with SMTP id i8so2473422qcq.38 for ; Fri, 20 Dec 2013 10:00:39 -0800 (PST) X-Received: by 10.229.136.73 with SMTP id q9mr16415958qct.15.1387562439720; Fri, 20 Dec 2013 10:00:39 -0800 (PST) Received: from zoo.ghostprotocols.net ([177.159.12.241]) by mx.google.com with ESMTPSA id g1sm7480572qec.9.2013.12.20.10.00.33 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 Dec 2013 10:00:38 -0800 (PST) Received: by zoo.ghostprotocols.net (Postfix, from userid 1000) id 7744B1E0E85; Fri, 20 Dec 2013 15:00:31 -0300 (BRT) Date: Fri, 20 Dec 2013 18:00:00 -0000 From: Arnaldo Carvalho de Melo To: Masami Hiramatsu Cc: Ingo Molnar , Srikar Dronamraju , David Ahern , lkml , "Steven Rostedt (Red Hat)" , Oleg Nesterov , "David A. Long" , systemtap@sourceware.org, yrl.pp-manager.tt@hitachi.com, Namhyung Kim Subject: Re: [PATCH -tip 1/3] [CLEANUP] perf-probe: Expand given path to absolute path Message-ID: <20131220180031.GA28878@ghostprotocols.net> References: <20131220100255.7169.19384.stgit@kbuild-fedora.novalocal> <20131220100257.7169.60537.stgit@kbuild-fedora.novalocal> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20131220100257.7169.60537.stgit@kbuild-fedora.novalocal> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.21 (2010-09-15) X-SW-Source: 2013-q4/txt/msg00468.txt.bz2 Em Fri, Dec 20, 2013 at 10:02:57AM +0000, Masami Hiramatsu escreveu: > Expand given path to absolute path in option parser, > except for a module name. Instead of expanding it later, > this get the absolute path in early stage. What is the problem this solves? Can you provide some output showing the problem, i.e. before you apply this patch? Then can you provide the output after the patch is applied? - Arnaldo > Signed-off-by: Masami Hiramatsu > --- > tools/perf/builtin-probe.c | 9 +++++++++ > tools/perf/util/probe-event.c | 11 ++--------- > 2 files changed, 11 insertions(+), 9 deletions(-) > > diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c > index 6ea9e85..b40d064 100644 > --- a/tools/perf/builtin-probe.c > +++ b/tools/perf/builtin-probe.c > @@ -180,6 +180,15 @@ static int opt_set_target(const struct option *opt, const char *str, > else > return ret; > > + /* Expand given path to absolute path, except for modulename */ > + if (params.uprobes || strchr(str, '/')) { > + str = realpath(str, NULL); > + if (!str) { > + pr_warning("Failed to find the path of %s.\n", > + str); > + return ret; > + } > + } > params.target = str; > ret = 0; > } > diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c > index d7cff57..05be5de 100644 > --- a/tools/perf/util/probe-event.c > +++ b/tools/perf/util/probe-event.c > @@ -2281,7 +2281,7 @@ static int convert_name_to_addr(struct perf_probe_event *pev, const char *exec) > struct perf_probe_point *pp = &pev->point; > struct symbol *sym; > struct map *map = NULL; > - char *function = NULL, *name = NULL; > + char *function = NULL; > int ret = -EINVAL; > unsigned long long vaddr = 0; > > @@ -2297,12 +2297,7 @@ static int convert_name_to_addr(struct perf_probe_event *pev, const char *exec) > goto out; > } > > - name = realpath(exec, NULL); > - if (!name) { > - pr_warning("Cannot find realpath for %s.\n", exec); > - goto out; > - } > - map = dso__new_map(name); > + map = dso__new_map(exec); > if (!map) { > pr_warning("Cannot find appropriate DSO for %s.\n", exec); > goto out; > @@ -2367,7 +2362,5 @@ out: > } > if (function) > free(function); > - if (name) > - free(name); > return ret; > } >