Re: perf/Documentation/ABI -- add some documentation for perf_eventsysfs usage

From: Vince Weaver
Date: Fri Jul 05 2013 - 11:28:18 EST


On Fri, 5 Jul 2013, Jiri Olsa wrote:

> On Thu, Jul 04, 2013 at 11:02:53AM +0200, Peter Zijlstra wrote:
> > On Wed, Jul 03, 2013 at 11:14:40PM -0400, Vince Weaver wrote:

> > > Documentation/ABI/testing/sysfs-bus-event_source-devices-events
> > >
> > > Should the ldlat value be fixed to be hex? Or should we ammend the ABI
> > > document to allow decimal?
> >
> > I don't see a good reason not to allow decimal as well. Jolsa?
>
> yep, no technical problem with decimal
>
> hum, the doc mentions 'event' term only, which IS hex only AFAICS ;-)
>
> I think this docs should be updated and either describe all
> allowed terms or be generic enough to cover all of them.

So you're saying the official kernel ABI should be "whatever the
userspace perf tool happens to accept"?

That's not really useful, especially as perf doesn't distinguish between
event strings read from sysfs and those passed on the perf command line.
The ABI documentation in effect ends up being a pointer to a mostly
incomprehensible lex/yacc file.

I think we should just remove the
Documentation/ABI/testing/sysfs-bus-event_source-devices-events
file as it's misleading. Userspace broke and no one cares.

It's not even easy to audit all places in the kernel that create the sysfs
event files because each architecture does it differently. And there's no
sane way to unit test this on a new kernel release because the values
printed depend on the hardware you have, so without a full range of all
families of cpus for all architectures you never know when someone has
added a decimal value, or started depending on { characters, etc.

This is the problem with perf in the tools directory, any other user of
the ABI is eternally second-class.

Vince


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/