lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 6 Aug 2018 23:50:10 +0200
From:   Gabriele Mazzotta <gabriele.mzt@...il.com>
To:     Srinivas Pandruvada <srinivas.pandruvada@...ux.intel.com>,
        "Rafael J. Wysocki" <rafael@...nel.org>
Cc:     "Rafael J. Wysocki" <rjw@...ysocki.net>,
        Len Brown <lenb@...nel.org>,
        Viresh Kumar <viresh.kumar@...aro.org>,
        Linux PM <linux-pm@...r.kernel.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] Revert "cpufreq: intel_pstate: Fix ->set_policy()
 interface for no_turbo"

On 06/08/2018 18:49, Srinivas Pandruvada wrote:
> On Mon, 2018-08-06 at 10:30 +0200, Rafael J. Wysocki wrote:
>> On Sat, Aug 4, 2018 at 7:31 PM, Gabriele Mazzotta
>> <gabriele.mzt@...il.com> wrote:
>>> On 04/08/2018 17:29, Gabriele Mazzotta wrote:
>>>> This change does not take into account that some BIOSes change
>>>> MSR_IA32_MISC_ENABLE_TURBO_DISABLE depending on the power source.
>>>> If the turbo is disabled when the system boots, policy.max_freq
>>>> is set to pstate.max_pstate. However, if the BIOS later enables
>>>> the turbo, the CPU will never be able to run at
>>>> pstate.turbo_pstate.
>>>>
>>>> Since now intel_pstate_set_policy() does its calculations using
>>>> pstate.max_freq and pstate.turbo_freq, we can always calculate
>>>> cpuinfo.max_freq using pstate.turbo_pstate, thus allowing system
>>>> with varying MSR_IA32_MISC_ENABLE_TURBO_DISABLE to run at full
>>>> speed when the turbo is enabled.
>>
>> Well, the problem with this approach is that always using
>> pstate.turbo_pstate as the max causes the governor to overestimate
>> the
>> target frequency when the turbo range is not available (the target
>> depends on the width of the entire available P-state range including
>> turbo, so if the turbo range is not available, the number take into
>> that computation is too large).
>>
>> Are we expected to get notified when the BIOS updates
>> MSR_IA32_MISC_ENABLE_TURBO_DISABLE?
> 
> Let's try this:
> - boot with kernel command line 
> 
> intel_pstate=support_acpi_ppc dyndbg="file processor_perflib.c +p"
> dyndbg="file intel_pstate.c +p"

Plugged -> Unplugged:

[   40.046116] CPU 0: _PPC is 6 - frequency  limited
[   40.046128] intel_pstate: policy->max > max non turbo frequency
[   40.046131] intel_pstate: set_policy cpuinfo.max 3000000 policy->max 3000000
[   40.046134] intel_pstate: cpu:0 max_state 30 min_policy_perf:8 max_policy_perf:30
[   40.046137] intel_pstate: cpu:0 global_min:8 global_max:30
[   40.046140] intel_pstate: cpu:0 max_perf_ratio:30 min_perf_ratio:8
[   40.162173] CPU 0: _PPC is 6 - frequency  limited
[   40.162186] intel_pstate: policy->max > max non turbo frequency
[   40.162190] intel_pstate: set_policy cpuinfo.max 3000000 policy->max 3000000
[   40.162194] intel_pstate: cpu:0 max_state 30 min_policy_perf:8 max_policy_perf:30
[   40.162197] intel_pstate: cpu:0 global_min:8 global_max:30
[   40.162200] intel_pstate: cpu:0 max_perf_ratio:30 min_perf_ratio:8
[   40.162215] CPU 0: _PPC is 6 - frequency  limited
[   40.162220] intel_pstate: policy->max > max non turbo frequency
[   40.162223] intel_pstate: set_policy cpuinfo.max 3000000 policy->max 3000000
[   40.162226] intel_pstate: cpu:0 max_state 30 min_policy_perf:8 max_policy_perf:30
[   40.162228] intel_pstate: cpu:0 global_min:8 global_max:30
[   40.162230] intel_pstate: cpu:0 max_perf_ratio:30 min_perf_ratio:8
[   40.162237] CPU 0: _PPC is 6 - frequency  limited
[   40.162241] intel_pstate: policy->max > max non turbo frequency
[   40.162243] intel_pstate: set_policy cpuinfo.max 3000000 policy->max 3000000
[   40.162245] intel_pstate: cpu:0 max_state 30 min_policy_perf:8 max_policy_perf:30
[   40.162247] intel_pstate: cpu:0 global_min:8 global_max:30
[   40.162249] intel_pstate: cpu:0 max_perf_ratio:30 min_perf_ratio:8
[   40.162257] CPU 0: _PPC is 6 - frequency  limited
[   40.162261] intel_pstate: policy->max > max non turbo frequency
[   40.162263] intel_pstate: set_policy cpuinfo.max 3000000 policy->max 3000000
[   40.162265] intel_pstate: cpu:0 max_state 30 min_policy_perf:8 max_policy_perf:30
[   40.162267] intel_pstate: cpu:0 global_min:8 global_max:30
[   40.162269] intel_pstate: cpu:0 max_perf_ratio:30 min_perf_ratio:8

Unplugged -> Plugged:

[   52.648535] CPU 0: _PPC is 6 - frequency  limited
[   52.648553] intel_pstate: set_policy cpuinfo.max 3000000 policy->max 1700000
[   52.648558] intel_pstate: cpu:0 max_state 17 min_policy_perf:8 max_policy_perf:17
[   52.648562] intel_pstate: cpu:0 global_min:8 global_max:30
[   52.648566] intel_pstate: cpu:0 max_perf_ratio:17 min_perf_ratio:8
[   52.648583] CPU 0: _PPC is 6 - frequency  limited
[   52.648590] intel_pstate: set_policy cpuinfo.max 3000000 policy->max 1700000
[   52.648595] intel_pstate: cpu:0 max_state 17 min_policy_perf:8 max_policy_perf:17
[   52.648598] intel_pstate: cpu:0 global_min:8 global_max:30
[   52.648602] intel_pstate: cpu:0 max_perf_ratio:17 min_perf_ratio:8
[   52.656093] CPU 0: _PPC is 6 - frequency  limited
[   52.656111] intel_pstate: set_policy cpuinfo.max 3000000 policy->max 1700000
[   52.656116] intel_pstate: cpu:0 max_state 17 min_policy_perf:8 max_policy_perf:17
[   52.656120] intel_pstate: cpu:0 global_min:8 global_max:30
[   52.656123] intel_pstate: cpu:0 max_perf_ratio:17 min_perf_ratio:8
[   52.775577] CPU 0: _PPC is 6 - frequency  limited
[   52.775594] intel_pstate: set_policy cpuinfo.max 3000000 policy->max 1700000
[   52.775598] intel_pstate: cpu:0 max_state 17 min_policy_perf:8 max_policy_perf:17
[   52.775601] intel_pstate: cpu:0 global_min:8 global_max:30
[   52.775604] intel_pstate: cpu:0 max_perf_ratio:17 min_perf_ratio:8
[   53.028620] CPU 0: _PPC is 6 - frequency  limited
[   53.028637] intel_pstate: set_policy cpuinfo.max 3000000 policy->max 1700000
[   53.028643] intel_pstate: cpu:0 max_state 17 min_policy_perf:8 max_policy_perf:17
[   53.028647] intel_pstate: cpu:0 global_min:8 global_max:30
[   53.028651] intel_pstate: cpu:0 max_perf_ratio:17 min_perf_ratio:8

> and send dmesg after you change power sources.
> 
> - Also try with
> intel_pstate=disable dyndbg="file processor_perflib.c +p"

Nothing gets printed with this one.

Thanks,
Gabriele

> and send dmesg.
> 
> Thanks,
> Srinivas
> 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ