Re: unparseable, undocumented /sys/class/drm/.../pstate

Ilia Mirkin
2014-06-23T02:12:16Z

On Sat, Jun 21, 2014 at 3:45 PM, Greg KH <greg@kroah.com> wrote:
> On Sat, Jun 21, 2014 at 02:22:59PM -0400, Ilia Mirkin wrote:
>> On Sat, Jun 21, 2014 at 2:02 PM, Pavel Machek <pavel@ucw.cz> wrote:
>> > Hi!
>> >
>> > AFAICT, pstate file will contain something like
>> >
>> > 07: core 100 MHz memory 123 MHz *
>> > 08: core 100-200 MHz memory 123 MHz
>> >
>> > ...which does not look exactly like one-value-per-file, and I'm pretty
>> > sure userspace will get it wrong if it tries to parse it. Plus, I
>> > don't see required documentation in Documentation/ABI.
>> >
>> > Should we disable it for now, so that userspace does not start
>> > depending on it and we'll not have to maintain it forever?
>> >
>> > I guess better interface would be something like
>> >
>> > pstate/07/core_clock_min
>> > core_clock_max
>> > memory_clock_min
>> > memory_clock_max
>> >
>> > and then pstate/active containing just the number of active state?
>> >
>> > Thanks,
>> > Pavel
>> >
>> > PS: I have no nvidia, got the news at
>> >
>> > http://www.phoronix.com/scan.php?page=article&item=nouveau_try_linux316&num=2
>>
>> FTR, this file has been in place since 3.13, and there was a different
>> file before it (performance_levels), with a comparable format since
>> much earlier (definitely 3.8, probably earlier). I think it's meant a
>> lot more for people looking at it and echo'ing stuff to it to modify
>> the levels (where supported), than for programs parsing it. Perhaps
>> sysfs is the wrong place for this -- what is the right place? debugfs?
>
> Yes, please move it to debugfs.

Could we just say that the format of this file is one-per-line of

level: information-for-the-user

And you can echo a level into it to switch to that level? That seems
like a reasonable ABI to have... would be happy to throw it into a
file somewhere... not sure where though.

-ilia