Messages in this thread | | | Date | Sun, 29 Jan 2012 08:28:07 -0700 | From | David Ahern <> | Subject | Re: [PATCH 2/5] perf record: Add error message for EMFILE |
| |
On 01/29/2012 01:55 AM, Namhyung Kim wrote: > When a user tries to open so many events, perf_event_oen syscall > may fail with EMFILE. Provide an advice for that case. > > Signed-off-by: Namhyung Kim <namhyung@gmail.com> > --- > tools/perf/builtin-record.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c > index 32870eef952f..5d3b6794d93b 100644 > --- a/tools/perf/builtin-record.c > +++ b/tools/perf/builtin-record.c > @@ -249,6 +249,10 @@ try_again: > ui__warning("The %s event is not supported.\n", > event_name(pos)); > exit(EXIT_FAILURE); > + } else if (err == EMFILE) { > + ui__warning("Too many events are opened.\n" > + "Try again after reducing the number of events.\n"); > + exit(EXIT_FAILURE); > } > > printf("\n");
It's not just the number of events: an fd is opened for each specified event on each specified cpu and for each specified task. See __perf_evsel__open(). e.g., the new --uid option on a 16 cpu server can hit the limit pretty fast.
David
| |