Re: problem in changing from active to passive mode
From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: 2021-10-28 18:43:17
Also in:
lkml
On Thu, Oct 28, 2021 at 8:16 PM Rafael J. Wysocki [off-list ref] wrote:
On Thu, Oct 28, 2021 at 7:57 PM Rafael J. Wysocki [off-list ref] wrote:quoted
On Thu, Oct 28, 2021 at 7:29 PM Rafael J. Wysocki [off-list ref] wrote:quoted
On Thu, Oct 28, 2021 at 7:10 PM Julia Lawall [off-list ref] wrote:quoted
quoted
Now, for your graph 3, are you saying this pseudo code of the process is repeatable?: Power up the system, booting kernel 5.9 switch to passive/schedutil. wait X minutes for system to settle do benchmark, result ~13 seconds re-boot to kernel 5.15-RC switch to passive/schedutil. wait X minutes for system to settle do benchmark, result ~40 seconds re-boot to kernel 5.9 switch to passive/schedutil. wait X minutes for system to settle do benchmark, result ~28 secondsIn the first boot of 5.9, the des (desired?) field of the HWP_REQUEST register is 0 and in the second boot (after booting 5.15 and entering passive mode) it is 10. I don't know though if this is a bug or a feature...
I think I didn't understand you correctly, sorry about that. In 5.15-rc (starting in 5.11-rc) the desired perf field in HWP_REQUEST is used in the passive mode, so that is expected. However, it may not be reset to 0 when going back from the passive to the active mode.
quoted
quoted
It looks like a bug. I think that the desired value is not cleared on driver exit which should happen. Let me see if I can do a quick patch for that.Please check the behavior with the attached patch applied.Well, actually, the previous one won't do anything, because the desired perf field is already cleared in this function before writing the MSR, so please try the one attached to this message instead.
So with the last patch applied, can you please check if you get desired=0 with 5.15-rc when switching driver modes from passive to active? FWIW, this works for me here. In any case, the desired perf value in HWP_REQUEST is expected to be reset to 0 on system restart.