All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf: close the opened directories.
@ 2010-06-19  3:54 Gui Jianfeng
  2010-06-24  6:16 ` Gui Jianfeng
  2010-06-24  6:29 ` Zhang, Yanmin
  0 siblings, 2 replies; 10+ messages in thread
From: Gui Jianfeng @ 2010-06-19  3:54 UTC (permalink / raw)
  To: acme, mingo; +Cc: Yanmin Zhang, linux kernel mailing list

When I ran "perf kvm ... top", I encountered the following error output.

  Error: perfcounter syscall returned with -1 (Too many open files)

  Fatal: No CONFIG_PERF_EVENTS=y kernel support configured?

Looking into perf, I found perf opens too many direcotries at initialization
time, but forgets to close them. Here is the fix.

Signed-off-by: Gui Jianfeng <guijianfeng@cn.fujitsu.com>
---
 tools/perf/util/symbol.c |   18 +++++++++++-------
 1 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index 7fd6b15..a00dcad 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -1443,6 +1443,7 @@ static int map_groups__set_modules_path_dir(struct map_groups *self,
 {
 	struct dirent *dent;
 	DIR *dir = opendir(dir_name);
+	int ret = 0;
 
 	if (!dir) {
 		pr_debug("%s: cannot open %s dir\n", __func__, dir_name);
@@ -1465,8 +1466,10 @@ static int map_groups__set_modules_path_dir(struct map_groups *self,
 
 			snprintf(path, sizeof(path), "%s/%s",
 				 dir_name, dent->d_name);
-			if (map_groups__set_modules_path_dir(self, path) < 0)
-				goto failure;
+			if (map_groups__set_modules_path_dir(self, path) < 0) {
+				ret = -1;
+				goto out;
+			}
 		} else {
 			char *dot = strrchr(dent->d_name, '.'),
 			     dso_name[PATH_MAX];
@@ -1487,17 +1490,18 @@ static int map_groups__set_modules_path_dir(struct map_groups *self,
 				 dir_name, dent->d_name);
 
 			long_name = strdup(path);
-			if (long_name == NULL)
-				goto failure;
+			if (long_name == NULL) {
+				ret = -1;
+				goto out;
+			}
 			dso__set_long_name(map->dso, long_name);
 			dso__kernel_module_get_build_id(map->dso, "");
 		}
 	}
 
-	return 0;
-failure:
+out:
 	closedir(dir);
-	return -1;
+	return ret;
 }
 
 static char *get_kernel_version(const char *root_dir)
-- 
1.6.5.2


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2010-07-17 11:12 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-19  3:54 [PATCH] perf: close the opened directories Gui Jianfeng
2010-06-24  6:16 ` Gui Jianfeng
2010-06-24  6:29 ` Zhang, Yanmin
2010-06-24  6:49   ` Gui Jianfeng
2010-06-24  7:04   ` [PATCH v2] " Gui Jianfeng
2010-06-24  7:21     ` Peter Zijlstra
2010-06-24 13:52     ` Arnaldo Carvalho de Melo
2010-07-16  7:37       ` Gui Jianfeng
2010-07-16 15:42         ` Arnaldo Carvalho de Melo
2010-07-17 11:11     ` [tip:perf/urgent] perf symbols: Fix directory descriptor leaking tip-bot for Gui Jianfeng

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.