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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jun 23, 2014 at 12:18:51PM -0400, Ilia Mirkin wrote:
> On Mon, Jun 23, 2014 at 12:07 PM, Greg KH <greg@xxxxxxxxx> wrote:
> > On Sun, Jun 22, 2014 at 10:12:14PM -0400, Ilia Mirkin wrote:
> >> On Sat, Jun 21, 2014 at 3:45 PM, Greg KH <greg@xxxxxxxxx> 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@xxxxxx> 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.
> >
> > sysfs files are "one value per file", that's it.  Do anything other than
> > that, and it can not be in sysfs, sorry.
> 
> I think that's a little inconsistent. There are *tons* of files in
> sysfs with multiple values. For example "local_cpulist" which contains
> the string "0-3" for me, the per-connector "modes" file which has a
> list of modes supported, and a "resource" file which has a list of hex
> values (which probably have something to do with PCI resources?). [I
> purposely picked values coming from different parts of the kernel not
> to focus on one subsystem...]

A list of valid "values" that a file can be in is fine if you just then
write one value back to that file.  That's the one exception, but a
minor one given the huge number of sysfs files.  Other than that, if you
know of exceptions to that rule, please point them out and I will be
glad to yell at the developers.

PCI device resources are binary sysfs files, which are just pass-through
files from the firmware/device to userspace, with no parsing done in the
kernel.  So that's just a single 'value' as well.

greg k-h
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux