Re: [PATCH] perf: Don't list tracepoints without an id

Jason Baron
2009-08-05T20:08:32Z

On Wed, Aug 05, 2009 at 09:23:49PM +0200, Peter Zijlstra wrote:
> Stop perf list from displaying tracepoints without an id file.
>
> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
> ---
> tools/perf/util/parse-events.c | 10 ++++++++++
> 1 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
> index 7bdad8d..d00636b 100644
> --- a/tools/perf/util/parse-events.c
> +++ b/tools/perf/util/parse-events.c
> @@ -568,6 +568,7 @@ static void print_tracepoint_events(void)
> struct dirent *sys_next, *evt_next, sys_dirent, evt_dirent;
> struct stat st;
> char evt_path[MAXPATHLEN];
> + int fd;
>
> if (valid_debugfs_mount(debugfs_path))
> return;
> @@ -582,6 +583,15 @@ static void print_tracepoint_events(void)
> goto cleanup;
> for_each_event(sys_dirent, evt_dir, evt_dirent, evt_next,
> evt_path, st) {
> +
> + snprintf(evt_path, MAXPATHLEN, "%s/%s/%s/id",
> + debugfs_path,
> + sys_dirent.d_name, evt_dirent.d_name);
> + fd = open(evt_path, O_RDONLY);
> + if (fd < 0)
> + continue;
> + close(fd);
> +
> snprintf(evt_path, MAXPATHLEN, "%s:%s",
> sys_dirent.d_name, evt_dirent.d_name);
> fprintf(stderr, " %-40s [%s]\n", evt_path,
>
>

hmmm, might be nicer to add this check to the 'for_each_event()' macro
instead...

thanks,

-Jason