perf tools: Allow to reset open files counter

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.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Tested-by: Nilay Vaish <nilayvaish@gmail.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1467113345-12669-2-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Jiri Olsa
2016-06-28 13:29:02 +02:00
committed by Arnaldo Carvalho de Melo
parent 3be28870c0
commit f3069249e9
3 changed files with 24 additions and 6 deletions

View File

@@ -442,17 +442,27 @@ static rlim_t get_fd_limit(void)
return limit;
}
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)
{
fd_limit = 0;
}
static bool may_cache_fd(void)
{
static rlim_t limit;
if (!fd_limit)
fd_limit = get_fd_limit();
if (!limit)
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;
}
/*