Re: [RFC PATCH] perf: Provide status of known PMUs

From: Adrian Hunter
Date: Thu Jul 09 2015 - 04:47:46 EST


On 09/07/15 11:10, Ingo Molnar wrote:
>
> * Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote:
>
>> Known PMUs may not be present for various reasons.
>> Provide a way for the user to know what the reason
>> is.
>>
>> A bus attribute is created for each known PMU beneath
>> a group "known_pmus". The attribute name is the same
>> as the PMU name. The value is a string consisting of
>> one or, optionally, two parts: a canonical part, and
>> a driver specific part. If there are two parts, they
>> are separated by " - ". The canonical part is one of:
>>
>> Supported
>> Driver error
>> Driver not loaded
>> Driver not in kernel config
>> Not supported by kernel
>> Not supported by hardware
>> Wrong vendor
>> Wrong architecture
>> Unknown status
>
> Very nice!
>
>> Example:
>>
>> $ cat /sys/bus/event_source/known_pmus/intel_pt
>> Supported
>
> So I only have naming nits. 'Supported' is a bit ambiguous, because it could mean
> that the PMU is supported but the driver is not active. How about 'Enabled'?
>
> I'd also make the strings more unambiguously structured, something like:
>
> Enabled
> Disabled: Driver error
> Disabled: Driver not loaded
> Disabled: Driver not in kernel config
> Disabled: Not supported by the kernel
> Disabled: Not supported by the hardware
> Disabled: Not supported by the hardware vendor
> Disabled: Not supported by the the architecture
> Disabled: Unknown status
>
> (Note the small changes I did to the text in some places.)

OK

>
> Also note that I'd suggest not enumerating all the error reasons rigidly - just
> have a single error code, but a free flowing error string that is provided by the
> low level driver (and maybe strdup()-ed by the core). That way you can provide
> very specific error descriptions, without having to change the core every time you
> need a new category. Agreed?

Drivers can optionally provide a string - the optional second part described above.
For example:

$ cat /sys/bus/event_source/known_pmus/intel_pt
Disabled: Not supported by the hardware - ToPA output is not supported on this CPU

Having a finite set of categories allows software to interpret the string for
purposes other than displaying it. Having an optional second part allows
drivers to detail anything else.

--
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/