Re: [RFC 0/1] Documentation: Add documentation for new performance_profile sysfs class

From: Hans de Goede
Date: Sat Oct 03 2020 - 09:39:24 EST


Hi,

On 10/3/20 3:19 PM, Hans de Goede wrote:
Hi All,

Recently 2 different patches have been submitted for drivers under
drivers/platform/x86 to configure the performance-profile of
modern laptops (see the actual RFC patch for what I mean with
a performance-profile). One for the thinkpad_acpi driver and
one for the hp-wmi driver.

Since I don't want each pdx86 driver to invent its own userspace API
for this I have started a dicussion about coming up with a standardized /
common sysfs class / API for this on the pdx86 list:
https://www.spinics.net/lists/platform-driver-x86/msg22794.html

The sysfs API proposal which I'm sending out as RFC in this email
thread is the result of me trying to distill that discussion into
a concrete proposal.

I have Cc-ed the linux-pm and linux-acpi lists because even though
the trigger for doing this is 2 different pdx86 drivers, the resulting
API should (must even) also be suitable for other platforms. I can
e.g. see various modern ARM platforms also having similar functionality
which they may want to export to userspace and the ideally the userspace
code for allowing the end-user to configure/select a profile would be
the same under ARM and x86.

Talking about userspace I've also Cc-ed Bastien and Benjamin who are
working on the userspace side of this.

p.s.

About the type part of the proposed sysfs API for this, the idea
here is that e.g. the Intel pstate driver could also export a
performance-profile interface, mirroring the custom interface it
currently has for this.

The performance-profile-daemon (p-p-d) Bastien is working on already
talks to the pstate driver in some cases. Currently it does this using
the pstate drivers own/custom API, but that does not really scale. If
ARM or AMD chips get similar functionality in the future then ideally
these would export a /sys/class/performance-profile with a type
of "cpu" and then p-p-d would just need to talk to the performance-profile
API, instead of needing to have its own internal HAL to deal with
different CPU vendors.

Regards,

Hans