Em Thu, Oct 03, 2013 at 07:35:18AM -0600, David Ahern escreveu: > On 10/3/13 6:38 AM, Ingo Molnar wrote: > > > >* Ramkumar Ramachandra <artag...@gmail.com> wrote: > > > >>+ /* Perform a quick sanity check */ > >>+ if (!is_valid_tracepoint("power:cpu_frequency")) { > >>+ fprintf(stderr, "Error:\tNo permissions to read > >>$debugfs/tracing/events/power/cpu_frequency\n"); > >>+ fprintf(stderr, "Hint:\tChange the permissions of debugfs: > >>/sys/kernel/debug\n"); > >>+ fprintf(stderr, "\tThe directory will be present if your kernel > >>was compiled with debugfs support.\n"); > > > >Is missing permissions the only way how is_valid_tracepoint() can fail? > > > >What if debugfs has the right permissions but CONFIG_TRACEPOINTS is > >disabled in the kernel? > > There are a number of reasons that function can fail. The complete > solution is to plumb various error numbers and on failure request a > string for that failure. Take a look at util/target.[ch] as an > example. > > The comment applies to the perf-trace patch as well, but it gets > more complicated to handle the error paths from perf_evsel__newtp > when they dip into the tracepoint code
See the patch I posted, in that case we can use the old errno way, i.e. do nothing and just look at it in the perf_evsel__newtp/ perf_evlist__add_newtp callers. And is_valid_tracepoint() is a too big hammer, it traverses the whole directory looking for a match instead of plain build the path and do an access, its one of those things I need to ditch at some point. So far I just try to do a perf_evlist__add_newtp and if it fails, look at errno. - Arnaldo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/