Bug 215554 - Cannot use energy_performance_preference without HWP
Summary: Cannot use energy_performance_preference without HWP
Status: CLOSED INVALID
Alias: None
Product: Power Management
Classification: Unclassified
Component: intel_pstate (show other bugs)
Hardware: Intel Linux
: P1 normal
Assignee: Zhang Rui
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-01-31 11:12 UTC by BigmenPixel
Modified: 2022-06-28 14:14 UTC (History)
3 users (show)

See Also:
Kernel Version: 5.15.18-1-lts
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description BigmenPixel 2022-01-31 11:12:57 UTC
I don't have HWP feature support and can't use energy_performance_preference with intel_pstate. It should not be?

https://www.kernel.org/doc/html/v5.0/admin-guide/pm/intel_pstate.html?highlight=cpufreq#energy-vs-performance-hints
Comment 1 Bastien Nocera 2022-01-31 11:30:18 UTC
The problem is rather that energy_performance_preference does nothing on system without HWP when you would expect it to at least change the default cpufreq governor:
https://www.kernel.org/doc/html/v5.0/admin-guide/pm/intel_pstate.html?highlight=cpufreq#active-mode-without-hwp

If that's not possible or wanted, it would be great to have an explanation as to why so we can document the reasoning behind it being implemented in user-space.
Comment 2 Doug Smythies 2022-03-21 00:31:46 UTC
energy_performance_preference is an HWP only setting and should not be visible if HWP is disabled. It has nothing to do with which governor is used.

energy_performance_bias is different and should be present if HWP is disabled.

Example (HWP is disabled):

doug@s19:~$ grep . /sys/devices/system/cpu/cpu*/power/energy_perf_bias
/sys/devices/system/cpu/cpu0/power/energy_perf_bias:6
/sys/devices/system/cpu/cpu10/power/energy_perf_bias:6
/sys/devices/system/cpu/cpu11/power/energy_perf_bias:6
/sys/devices/system/cpu/cpu1/power/energy_perf_bias:6
/sys/devices/system/cpu/cpu2/power/energy_perf_bias:6
/sys/devices/system/cpu/cpu3/power/energy_perf_bias:6
/sys/devices/system/cpu/cpu4/power/energy_perf_bias:6
/sys/devices/system/cpu/cpu5/power/energy_perf_bias:6
/sys/devices/system/cpu/cpu6/power/energy_perf_bias:6
/sys/devices/system/cpu/cpu7/power/energy_perf_bias:6
/sys/devices/system/cpu/cpu8/power/energy_perf_bias:6
/sys/devices/system/cpu/cpu9/power/energy_perf_bias:6

doug@s19:~$ grep . /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
grep: /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference: No such file or directory

Note: for unknown reasons, and even though I have pointed it out several times now, Intel has not changed the default assignee for bugs where intel_pstate is the Component. Kristen has not been the maintainer for many years now.
Comment 3 Zhang Rui 2022-06-27 01:53:45 UTC
Right. first of all, EPP depends on HWP.
(In reply to BigmenPixel from comment #0)
> I don't have HWP feature support and can't use energy_performance_preference
> with intel_pstate. It should not be?
> 
> https://www.kernel.org/doc/html/v5.0/admin-guide/pm/intel_pstate.
> html?highlight=cpufreq#energy-vs-performance-hints

as stated above,
"If intel_pstate works in the active mode with the HWP feature enabled in the processor, additional attributes are present in every CPUFreq policy directory in sysfs." so I don't see a problem here.
Comment 4 Zhang Rui 2022-06-27 01:58:42 UTC
(In reply to Bastien Nocera from comment #1)
> The problem is rather that energy_performance_preference does nothing on
> system without HWP when you would expect it to at least change the default
> cpufreq governor:

how can you expect EPP to change something when it does not exist at all?

> https://www.kernel.org/doc/html/v5.0/admin-guide/pm/intel_pstate.
> html?highlight=cpufreq#active-mode-without-hwp
> 
> If that's not possible or wanted, it would be great to have an explanation
> as to why so we can document the reasoning behind it being implemented in
> user-space.

EPP is not mentioned in the above section.

I'm still not quite clear about the problem of the document.
Comment 5 Zhang Rui 2022-06-27 01:59:57 UTC
Bug closed for now.
please feel free to reopen it ff there is any further questions.
Comment 6 Bastien Nocera 2022-06-27 09:11:02 UTC
(In reply to Zhang Rui from comment #4)
> (In reply to Bastien Nocera from comment #1)
> > The problem is rather that energy_performance_preference does nothing on
> > system without HWP when you would expect it to at least change the default
> > cpufreq governor:
> 
> how can you expect EPP to change something when it does not exist at all?
>
> > https://www.kernel.org/doc/html/v5.0/admin-guide/pm/intel_pstate.
> > html?highlight=cpufreq#active-mode-without-hwp
> > 
> > If that's not possible or wanted, it would be great to have an explanation
> > as to why so we can document the reasoning behind it being implemented in
> > user-space.
> 
> EPP is not mentioned in the above section.
>
> I'm still not quite clear about the problem of the document.

Zooming back out a bit, the problem isn't so much with the document, it's with the interfaces offered by the various moving parts that seem to be added without a clear idea of what user-space should be doing to use those interfaces.

Just why does energy_perf_bias need to exist when its purpose seem to be pretty much the exact same as energy_performance_preference?

The multiplication of options, changing availability of said options, and limited access to hardware means it's very difficult to interface with those options, creating a large matrix of things to test for.

Ideally, the cpufreq driver would offer up a platform_profile interface instead, and we could use that from user-space without having to think about the availability of each one of the hardware features.
Comment 7 Zhang Rui 2022-06-28 01:19:52 UTC
(In reply to Bastien Nocera from comment #6)
> (In reply to Zhang Rui from comment #4)
> > (In reply to Bastien Nocera from comment #1)
> > > The problem is rather that energy_performance_preference does nothing on
> > > system without HWP when you would expect it to at least change the
> default
> > > cpufreq governor:
> > 
> > how can you expect EPP to change something when it does not exist at all?
> >
> > > https://www.kernel.org/doc/html/v5.0/admin-guide/pm/intel_pstate.
> > > html?highlight=cpufreq#active-mode-without-hwp
> > > 
> > > If that's not possible or wanted, it would be great to have an
> explanation
> > > as to why so we can document the reasoning behind it being implemented in
> > > user-space.
> > 
> > EPP is not mentioned in the above section.
> >
> > I'm still not quite clear about the problem of the document.
> 
> Zooming back out a bit, the problem isn't so much with the document, it's
> with the interfaces offered by the various moving parts that seem to be
> added without a clear idea of what user-space should be doing to use those
> interfaces.
> 
> Just why does energy_perf_bias need to exist when its purpose seem to be
> pretty much the exact same as energy_performance_preference?
> 

No, EPP and EPB are different.

> The multiplication of options, changing availability of said options, and
> limited access to hardware means it's very difficult to interface with those
> options, creating a large matrix of things to test for.
> 

Agree on this.
People at Intel are creating some tuning guide based on these kernel knobs. but I can't guarantee when this could be finished.
Comment 8 Bastien Nocera 2022-06-28 14:14:25 UTC
(In reply to Zhang Rui from comment #7)
> (In reply to Bastien Nocera from comment #6)
> > (In reply to Zhang Rui from comment #4)
> > > (In reply to Bastien Nocera from comment #1)
> > > > The problem is rather that energy_performance_preference does nothing
> on
> > > > system without HWP when you would expect it to at least change the
> > default
> > > > cpufreq governor:
> > > 
> > > how can you expect EPP to change something when it does not exist at all?
> > >
> > > > https://www.kernel.org/doc/html/v5.0/admin-guide/pm/intel_pstate.
> > > > html?highlight=cpufreq#active-mode-without-hwp
> > > > 
> > > > If that's not possible or wanted, it would be great to have an
> > explanation
> > > > as to why so we can document the reasoning behind it being implemented
> in
> > > > user-space.
> > > 
> > > EPP is not mentioned in the above section.
> > >
> > > I'm still not quite clear about the problem of the document.
> > 
> > Zooming back out a bit, the problem isn't so much with the document, it's
> > with the interfaces offered by the various moving parts that seem to be
> > added without a clear idea of what user-space should be doing to use those
> > interfaces.
> > 
> > Just why does energy_perf_bias need to exist when its purpose seem to be
> > pretty much the exact same as energy_performance_preference?
> > 
> 
> No, EPP and EPB are different.

They're only different before they poke at different parts of the CPU, API-wise, they're as similar as can be. In fact, reading the documentation, I couldn't figure out whether on systems that have HWP support, I should or shouldn't be modifying energy_perf_bias.

There's no mention of it in:
https://www.kernel.org/doc/html/v5.17/admin-guide/pm/intel_epb.html?highlight=energy_perf_bias
or in:
https://www.kernel.org/doc/html/v5.17/admin-guide/pm/intel_pstate.html?highlight=energy_performance_preference

(The answer is that it should modify both)

> 
> > The multiplication of options, changing availability of said options, and
> > limited access to hardware means it's very difficult to interface with
> those
> > options, creating a large matrix of things to test for.
> > 
> 
> Agree on this.
> People at Intel are creating some tuning guide based on these kernel knobs.
> but I can't guarantee when this could be finished.

Could Intel write a platform_profile driver for systems that don't already offer it so we don't have to guess what preference does what?

Note You need to log in before you can comment on or make changes to this bug.