From: Jiri Olsa <jolsa@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: lkml <linux-kernel@vger.kernel.org>,
David Ahern <dsahern@gmail.com>, Ingo Molnar <mingo@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: [PATCH 2/5] perf tools: Allow to reset open files counter
Date: Tue, 28 Jun 2016 13:29:02 +0200 [thread overview]
Message-ID: <1467113345-12669-2-git-send-email-jolsa@kernel.org> (raw)
In-Reply-To: <1467113345-12669-1-git-send-email-jolsa@kernel.org>
I hit a bug when running test suite without forking
each test (-F option):
$ perf test -F dso
8: Test dso data read : Ok
9: Test dso data cache : FAILED!
10: Test dso data reopen : FAILED!
The reason the session file limit is set just once for
perf process so we need to reset it for each test,
otherwise wrong limit is taken into account.
Link: http://lkml.kernel.org/n/tip-bqapag0ljaiwmb7hlkw09zk5@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
tools/perf/tests/dso-data.c | 6 ++++++
tools/perf/util/dso.c | 22 ++++++++++++++++------
tools/perf/util/dso.h | 2 ++
3 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/tools/perf/tests/dso-data.c b/tools/perf/tests/dso-data.c
index 8cf0d9e189a8..13725e09ba22 100644
--- a/tools/perf/tests/dso-data.c
+++ b/tools/perf/tests/dso-data.c
@@ -251,6 +251,9 @@ int test__dso_data_cache(int subtest __maybe_unused)
long nr_end, nr = open_files_cnt();
int dso_cnt, limit, i, fd;
+ /* Rest the internal dso open counter limit. */
+ reset_fd_limit();
+
memset(&machine, 0, sizeof(machine));
/* set as system limit */
@@ -312,6 +315,9 @@ int test__dso_data_reopen(int subtest __maybe_unused)
#define dso_1 (dsos[1])
#define dso_2 (dsos[2])
+ /* Rest the internal dso open counter limit. */
+ reset_fd_limit();
+
memset(&machine, 0, sizeof(machine));
/*
diff --git a/tools/perf/util/dso.c b/tools/perf/util/dso.c
index 5d286f5d7906..e1de6cc4863e 100644
--- a/tools/perf/util/dso.c
+++ b/tools/perf/util/dso.c
@@ -442,17 +442,27 @@ static rlim_t get_fd_limit(void)
return limit;
}
-static bool may_cache_fd(void)
+static rlim_t fd_limit;
+
+/*
+ * Used only by tests/dso-data.c to reset the environment
+ * for tests. I dont expect we should change this during
+ * standard runtime.
+ */
+void reset_fd_limit(void)
{
- static rlim_t limit;
+ fd_limit = 0;
+}
- if (!limit)
- limit = get_fd_limit();
+static bool may_cache_fd(void)
+{
+ if (!fd_limit)
+ fd_limit = get_fd_limit();
- if (limit == RLIM_INFINITY)
+ if (fd_limit == RLIM_INFINITY)
return true;
- return limit > (rlim_t) dso__data_open_cnt;
+ return fd_limit > (rlim_t) dso__data_open_cnt;
}
/*
diff --git a/tools/perf/util/dso.h b/tools/perf/util/dso.h
index 76d79d070e21..a571f24895ca 100644
--- a/tools/perf/util/dso.h
+++ b/tools/perf/util/dso.h
@@ -360,4 +360,6 @@ enum dso_type dso__type(struct dso *dso, struct machine *machine);
int dso__strerror_load(struct dso *dso, char *buf, size_t buflen);
+void reset_fd_limit(void);
+
#endif /* __PERF_DSO */
--
2.4.11
next prev parent reply other threads:[~2016-06-28 11:30 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-28 11:29 [PATCH 1/5] perf test: Add -F/--dont-fork option Jiri Olsa
2016-06-28 11:29 ` Jiri Olsa [this message]
2016-06-29 16:05 ` [PATCH 2/5] perf tools: Allow to reset open files counter Nilay Vaish
2016-06-30 13:27 ` Nilay Vaish
2016-07-01 6:48 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-06-28 11:29 ` [PATCH 3/5] perf tests: Fix thread map test for -F option Jiri Olsa
2016-06-29 16:06 ` Nilay Vaish
2016-06-30 13:27 ` Nilay Vaish
2016-07-01 6:49 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-06-28 11:29 ` [PATCH 4/5] perf tools: Change cpu_map__fprintf output Jiri Olsa
2016-07-01 6:49 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-06-28 11:29 ` [PATCH 5/5] perf tools: Transform nodes string info to struct Jiri Olsa
2016-06-30 21:20 ` Arnaldo Carvalho de Melo
2016-07-01 6:17 ` Jiri Olsa
2016-06-29 16:04 ` [PATCH 1/5] perf test: Add -F/--dont-fork option Nilay Vaish
2016-06-29 16:07 ` Arnaldo Carvalho de Melo
2016-06-30 13:26 ` Nilay Vaish
2016-06-30 21:12 ` Arnaldo Carvalho de Melo
2016-07-01 6:49 ` [tip:perf/core] " tip-bot for Jiri Olsa
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=1467113345-12669-2-git-send-email-jolsa@kernel.org \
--to=jolsa@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=dsahern@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.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 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.