mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

Add the HiSilicon uncore frequency scaling driver for Kunpeng SoCs based on the devfreq framework. The uncore domain contains shared computing resources, including system interconnects and L3 cache. The uncore frequency significantly impacts the system-wide performance as well as power consumption. This driver adds support for runtime management of uncore frequency from kernel and userspace. The main function includes setting and getting frequencies, changing frequency scaling policies, and querying the list of CPUs whose performance is significantly related to this uncore frequency domain, etc. The driver communicates with a platform controller through an ACPI PCC mailbox to take the actual actions of frequency scaling. Co-developed-by: Lifeng Zheng <zhenglifeng1@huawei.com> Signed-off-by: Lifeng Zheng <zhenglifeng1@huawei.com> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com> Reviewed-by: Huisong Li <lihuisong@huawei.com> Signed-off-by: Jie Zhan <zhanjie9@hisilicon.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> Link: https://patchwork.kernel.org/project/linux-pm/patch/20250623143401.4095045-3-zhanjie9@hisilicon.com/
143 lines
5 KiB
Text
143 lines
5 KiB
Text
What: /sys/class/devfreq/.../
|
|
Date: September 2011
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
Provide a place in sysfs for the devfreq objects.
|
|
This allows accessing various devfreq specific variables.
|
|
The name of devfreq object denoted as ... is same as the
|
|
name of device using devfreq.
|
|
|
|
What: /sys/class/devfreq/.../name
|
|
Date: November 2019
|
|
Contact: Chanwoo Choi <cw00.choi@samsung.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../name shows the name of device
|
|
of the corresponding devfreq object.
|
|
|
|
What: /sys/class/devfreq/.../governor
|
|
Date: September 2011
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../governor show or set the name of the
|
|
governor used by the corresponding devfreq object.
|
|
|
|
What: /sys/class/devfreq/.../cur_freq
|
|
Date: September 2011
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../cur_freq shows the current
|
|
frequency of the corresponding devfreq object. Same as
|
|
target_freq when get_cur_freq() is not implemented by
|
|
devfreq driver.
|
|
|
|
What: /sys/class/devfreq/.../target_freq
|
|
Date: September 2012
|
|
Contact: Rajagopal Venkat <rajagopal.venkat@linaro.org>
|
|
Description:
|
|
The /sys/class/devfreq/.../target_freq shows the next governor
|
|
predicted target frequency of the corresponding devfreq object.
|
|
|
|
What: /sys/class/devfreq/.../trans_stat
|
|
Date: October 2012
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
This ABI shows or clears the statistics of devfreq behavior
|
|
on a specific device. It shows the time spent in each state
|
|
and the number of transitions between states.
|
|
In order to activate this ABI, the devfreq target device
|
|
driver should provide the list of available frequencies
|
|
with its profile. If need to reset the statistics of devfreq
|
|
behavior on a specific device, enter 0(zero) to 'trans_stat'
|
|
as following::
|
|
|
|
echo 0 > /sys/class/devfreq/.../trans_stat
|
|
|
|
If the transition table is bigger than PAGE_SIZE, reading
|
|
this will return an -EFBIG error.
|
|
|
|
What: /sys/class/devfreq/.../available_frequencies
|
|
Date: October 2012
|
|
Contact: Nishanth Menon <nm@ti.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../available_frequencies shows
|
|
the available frequencies of the corresponding devfreq object.
|
|
This is a snapshot of available frequencies and not limited
|
|
by the min/max frequency restrictions.
|
|
|
|
What: /sys/class/devfreq/.../available_governors
|
|
Date: October 2012
|
|
Contact: Nishanth Menon <nm@ti.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../available_governors shows
|
|
currently available governors in the system.
|
|
|
|
What: /sys/class/devfreq/.../min_freq
|
|
Date: January 2013
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../min_freq shows and stores
|
|
the minimum frequency requested by users. It is 0 if
|
|
the user does not care. min_freq overrides the
|
|
frequency requested by governors.
|
|
|
|
What: /sys/class/devfreq/.../max_freq
|
|
Date: January 2013
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../max_freq shows and stores
|
|
the maximum frequency requested by users. It is 0 if
|
|
the user does not care. max_freq overrides the
|
|
frequency requested by governors and min_freq.
|
|
The max_freq overrides min_freq because max_freq may be
|
|
used to throttle devices to avoid overheating.
|
|
|
|
What: /sys/class/devfreq/.../polling_interval
|
|
Date: September 2011
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../polling_interval shows and sets
|
|
the requested polling interval of the corresponding devfreq
|
|
object. The values are represented in ms. If the value is
|
|
less than 1 jiffy, it is considered to be 0, which means
|
|
no polling. This value is meaningless if the governor is
|
|
not polling.
|
|
|
|
A list of governors that support the node:
|
|
- simple_ondmenad
|
|
- tegra_actmon
|
|
|
|
What: /sys/class/devfreq/.../userspace/set_freq
|
|
Date: September 2011
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../userspace/set_freq shows and
|
|
sets the requested frequency for the devfreq object if
|
|
userspace governor is in effect.
|
|
|
|
A list of governors that support the node:
|
|
- userspace
|
|
|
|
What: /sys/class/devfreq/.../timer
|
|
Date: July 2020
|
|
Contact: Chanwoo Choi <cw00.choi@samsung.com>
|
|
Description:
|
|
This ABI shows and stores the kind of work timer by users.
|
|
This work timer is used by devfreq workqueue in order to
|
|
monitor the device status such as utilization. The user
|
|
can change the work timer on runtime according to their demand
|
|
as following::
|
|
|
|
echo deferrable > /sys/class/devfreq/.../timer
|
|
echo delayed > /sys/class/devfreq/.../timer
|
|
|
|
A list of governors that support the node:
|
|
- simple_ondemand
|
|
|
|
What: /sys/class/devfreq/.../related_cpus
|
|
Date: June 2025
|
|
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
|
Description: The list of CPUs whose performance is closely related to the
|
|
frequency of this devfreq domain.
|
|
|
|
This file is only present if a specific devfreq device is
|
|
closely associated with a subset of CPUs.
|