ACPI, cpuidle: Clarify C-state description in sysfs
Add a new sysfs entry under cpuidle states. desc - can be used by driver to communicate to userspace any specific information about the state. This helps in identifying the exact hardware C-states behind the ACPI C-state definition. Idea is to export this through powertop, which will help to map the C-state reported by powertop to actual hardware C-state. Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
committed by
Len Brown
parent
e760e716d4
commit
4fcb2fcd4d
@@ -219,7 +219,8 @@ static void poll_idle_init(struct cpuidle_device *dev)
|
||||
|
||||
cpuidle_set_statedata(state, NULL);
|
||||
|
||||
snprintf(state->name, CPUIDLE_NAME_LEN, "C0 (poll idle)");
|
||||
snprintf(state->name, CPUIDLE_NAME_LEN, "C0");
|
||||
snprintf(state->desc, CPUIDLE_DESC_LEN, "CPUIDLE CORE POLL IDLE");
|
||||
state->exit_latency = 0;
|
||||
state->target_residency = 0;
|
||||
state->power_usage = -1;
|
||||
|
||||
+11
-3
@@ -218,16 +218,23 @@ static ssize_t show_state_##_name(struct cpuidle_state *state, char *buf) \
|
||||
return sprintf(buf, "%u\n", state->_name);\
|
||||
}
|
||||
|
||||
static ssize_t show_state_name(struct cpuidle_state *state, char *buf)
|
||||
{
|
||||
return sprintf(buf, "%s\n", state->name);
|
||||
#define define_show_state_str_function(_name) \
|
||||
static ssize_t show_state_##_name(struct cpuidle_state *state, char *buf) \
|
||||
{ \
|
||||
if (state->_name[0] == '\0')\
|
||||
return sprintf(buf, "<null>\n");\
|
||||
return sprintf(buf, "%s\n", state->_name);\
|
||||
}
|
||||
|
||||
define_show_state_function(exit_latency)
|
||||
define_show_state_function(power_usage)
|
||||
define_show_state_function(usage)
|
||||
define_show_state_function(time)
|
||||
define_show_state_str_function(name)
|
||||
define_show_state_str_function(desc)
|
||||
|
||||
define_one_state_ro(name, show_state_name);
|
||||
define_one_state_ro(desc, show_state_desc);
|
||||
define_one_state_ro(latency, show_state_exit_latency);
|
||||
define_one_state_ro(power, show_state_power_usage);
|
||||
define_one_state_ro(usage, show_state_usage);
|
||||
@@ -235,6 +242,7 @@ define_one_state_ro(time, show_state_time);
|
||||
|
||||
static struct attribute *cpuidle_state_default_attrs[] = {
|
||||
&attr_name.attr,
|
||||
&attr_desc.attr,
|
||||
&attr_latency.attr,
|
||||
&attr_power.attr,
|
||||
&attr_usage.attr,
|
||||
|
||||
Reference in New Issue
Block a user