From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org,
Masami Hiramatsu <mhiramat@kernel.org>,
Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>,
Brendan Gregg <brendan.d.gregg@gmail.com>,
Hemant Kumar <hemant@linux.vnet.ibm.com>,
Namhyung Kim <namhyung@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: [PATCH 12/13] perf symbols: Use lsdir() for the search in kcore cache directory
Date: Wed, 11 May 2016 13:32:53 -0300 [thread overview]
Message-ID: <1462984374-11067-13-git-send-email-acme@kernel.org> (raw)
In-Reply-To: <1462984374-11067-1-git-send-email-acme@kernel.org>
From: Masami Hiramatsu <mhiramat@kernel.org>
Use lsdir() to search in kcore cache directory. This also avoids
checking hidden dot directory entries, because kcore cache directories
must always have the name from timestamps when taking the kcore
snapshots, and it never start with dot.
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
Cc: Hemant Kumar <hemant@linux.vnet.ibm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20160511135208.23943.68071.stgit@devbox
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/symbol.c | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index 4ada5a44aaf2..7fb33304fb4e 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -1608,25 +1608,27 @@ out:
return err;
}
+static bool visible_dir_filter(const char *name, struct dirent *d)
+{
+ if (d->d_type != DT_DIR)
+ return false;
+ return lsdir_no_dot_filter(name, d);
+}
+
static int find_matching_kcore(struct map *map, char *dir, size_t dir_sz)
{
char kallsyms_filename[PATH_MAX];
- struct dirent *dent;
int ret = -1;
- DIR *d;
+ struct strlist *dirs;
+ struct str_node *nd;
- d = opendir(dir);
- if (!d)
+ dirs = lsdir(dir, visible_dir_filter);
+ if (!dirs)
return -1;
- while (1) {
- dent = readdir(d);
- if (!dent)
- break;
- if (dent->d_type != DT_DIR)
- continue;
+ strlist__for_each(nd, dirs) {
scnprintf(kallsyms_filename, sizeof(kallsyms_filename),
- "%s/%s/kallsyms", dir, dent->d_name);
+ "%s/%s/kallsyms", dir, nd->s);
if (!validate_kcore_addresses(kallsyms_filename, map)) {
strlcpy(dir, kallsyms_filename, dir_sz);
ret = 0;
@@ -1634,7 +1636,7 @@ static int find_matching_kcore(struct map *map, char *dir, size_t dir_sz)
}
}
- closedir(d);
+ strlist__delete(dirs);
return ret;
}
--
2.5.5
next prev parent reply other threads:[~2016-05-11 16:37 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-11 16:32 [GIT PULL 00/13] perf/core improvements and fixes Arnaldo Carvalho de Melo
2016-05-11 16:32 ` [PATCH 01/13] perf scripting python: Use Py_FatalError instead of die() Arnaldo Carvalho de Melo
2016-05-11 16:32 ` [PATCH 02/13] perf symbols: Add dso__insert_symbol function Arnaldo Carvalho de Melo
2016-05-11 16:32 ` [PATCH 03/13] perf script: Fix symbol insertion behavior in db-export Arnaldo Carvalho de Melo
2016-05-11 16:32 ` [PATCH 04/13] perf script: Fix callchain addresses " Arnaldo Carvalho de Melo
2016-05-11 16:32 ` [PATCH 05/13] perf script: Fix export of callchains with recursion " Arnaldo Carvalho de Melo
2016-05-11 16:32 ` [PATCH 06/13] perf build: Add build-test for libunwind cross-platforms support Arnaldo Carvalho de Melo
2016-05-11 16:32 ` [PATCH 07/13] perf build: Add build-test for debug-frame on arm/arm64 Arnaldo Carvalho de Melo
2016-05-11 16:32 ` [PATCH 08/13] perf trace: Move flock op beautifier to tools/perf/trace/beauty/ Arnaldo Carvalho de Melo
2016-05-11 16:32 ` [PATCH 09/13] perf trace: Move seccomp args beautifiers " Arnaldo Carvalho de Melo
2016-05-11 16:32 ` [PATCH 10/13] perf tools: Fix lsdir to set errno correctly Arnaldo Carvalho de Melo
2016-05-11 16:32 ` [PATCH 11/13] perf tools: Use SBUILD_ID_SIZE where applicable Arnaldo Carvalho de Melo
2016-05-11 16:32 ` Arnaldo Carvalho de Melo [this message]
2016-05-11 16:32 ` [PATCH 13/13] perf buildid-cache: Use lsdir() for looking up buildid caches Arnaldo Carvalho de Melo
2016-05-12 6:58 ` [GIT PULL 00/13] perf/core improvements and fixes Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1462984374-11067-13-git-send-email-acme@kernel.org \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=ananth@linux.vnet.ibm.com \
--cc=brendan.d.gregg@gmail.com \
--cc=hemant@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).