mbox series

[SRU,N,0/1] cpufreq: intel_pstate: Support Emerald Rapids OOB mode

Message ID 20241017203757.3858885-1-thibault.ferrante@canonical.com
Headers show
Series cpufreq: intel_pstate: Support Emerald Rapids OOB mode | expand

Message

Thibault Ferrante Oct. 17, 2024, 8:37 p.m. UTC
BugLink: https://bugs.launchpad.net/bugs/2084834

[Impact]

In Emerald Rapids VMs with OOB P-states enabled, a stack trace is
printed during boot on 6.8 based kernels. The stack traces look like:

[ 1.206658] intel_pstate: Intel P-state driver initializing
[ 1.207453] unchecked MSR access error: WRMSR to 0x199 (tried to write 0x0000000000000800) at rIP: 0xffffffffb94c3b24 (native_write_msr+0x4/0x40)
[ 1.208422] Call Trace:
[ 1.208422] <TASK>
[ 1.208422] ? show_stack_regs+0x23/0x40
[ 1.208422] ? ex_handler_msr+0x10a/0x180
[ 1.208422] ? fixup_exception+0x183/0x390
[ 1.208422] ? gp_try_fixup_and_notify+0x23/0xc0
[ 1.208422] ? exc_general_protection+0x15e/0x480
[ 1.208422] ? asm_exc_general_protection+0x27/0x30
[ 1.208422] ? __pfx___wrmsr_on_cpu+0x10/0x10
[ 1.208422] ? native_write_msr+0x4/0x40
[ 1.208422] ? __wrmsr_on_cpu+0x4b/0x90
[ 1.208422] ? __pfx___rdmsr_on_cpu+0x10/0x10
[ 1.208422] ? __pfx___wrmsr_on_cpu+0x10/0x10
[ 1.208422] generic_exec_single+0x7e/0x120
[ 1.208422] smp_call_function_single+0x103/0x140
[ 1.208422] ? __pfx___wrmsr_on_cpu+0x10/0x10
[ 1.208422] wrmsrl_on_cpu+0x57/0x80
[ 1.208422] intel_pstate_set_pstate+0x3e/0x80
[ 1.208422] intel_pstate_get_cpu_pstates.constprop.0+0xd7/0x190
[ 1.208422] intel_pstate_init_cpu+0x3f/0x140
[ 1.208422] intel_cpufreq_cpu_init+0x44/0x270
[ 1.208422] ? freq_qos_add_notifier+0x45/0x80
[ 1.208422] cpufreq_online+0x444/0xb80
[ 1.208422] cpufreq_add_dev+0x99/0xd0
[ 1.208422] subsys_interface_register+0x11c/0x140
[ 1.208422] cpufreq_register_driver+0x1b5/0x330
[ 1.208422] intel_pstate_register_driver+0x48/0xd0
[ 1.208422] intel_pstate_init+0x25c/0x810
[ 1.208422] ? __pfx_intel_pstate_init+0x10/0x10
[ 1.208422] do_one_initcall+0x5b/0x310
[ 1.208422] do_initcalls+0x104/0x210
[ 1.208422] ? __pfx_kernel_init+0x10/0x10
[ 1.208422] kernel_init_freeable+0x134/0x1f0
[ 1.208422] kernel_init+0x1b/0x200
[ 1.208422] ret_from_fork+0x44/0x70
[ 1.208422] ? __pfx_kernel_init+0x10/0x10
[ 1.208422] ret_from_fork_asm+0x1b/0x30
[ 1.208422] </TASK>

[Fix]
Cherry pick of 7e1c3f584ee7 - cpufreq: intel_pstate: Support Emerald Rapids OOB mode
Upstream since v6.11.

Very simple change as the OOB identifying bits are same as for the prior
generation CPUs like Sapphire Rapids servers, so also add Emerald Rapids to the
intel_pstate_cpu_oob_ids[] list.

[Test Plan]
Set HW PM OOB mode in BIOS power management config.
Make sure that no cpufreq drivers are loaded. You can verify that
/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver is not present or any cpufreq interface.

It's also already part of linux-aws: https://bugs.launchpad.net/bugs/2078894

[Where problems could occur]
cpufreq regression.

Srinivas Pandruvada (1):
  cpufreq: intel_pstate: Support Emerald Rapids OOB mode

 drivers/cpufreq/intel_pstate.c | 1 +
 1 file changed, 1 insertion(+)

Comments

ivanhu Oct. 18, 2024, 2:54 a.m. UTC | #1
Acked-by: Ivan Hu <ivan.hu@canonical.com>

On 2024/10/18 04:37, Thibault Ferrante wrote:
> BugLink: https://bugs.launchpad.net/bugs/2084834
> 
> [Impact]
> 
> In Emerald Rapids VMs with OOB P-states enabled, a stack trace is
> printed during boot on 6.8 based kernels. The stack traces look like:
> 
> [ 1.206658] intel_pstate: Intel P-state driver initializing
> [ 1.207453] unchecked MSR access error: WRMSR to 0x199 (tried to write 0x0000000000000800) at rIP: 0xffffffffb94c3b24 (native_write_msr+0x4/0x40)
> [ 1.208422] Call Trace:
> [ 1.208422] <TASK>
> [ 1.208422] ? show_stack_regs+0x23/0x40
> [ 1.208422] ? ex_handler_msr+0x10a/0x180
> [ 1.208422] ? fixup_exception+0x183/0x390
> [ 1.208422] ? gp_try_fixup_and_notify+0x23/0xc0
> [ 1.208422] ? exc_general_protection+0x15e/0x480
> [ 1.208422] ? asm_exc_general_protection+0x27/0x30
> [ 1.208422] ? __pfx___wrmsr_on_cpu+0x10/0x10
> [ 1.208422] ? native_write_msr+0x4/0x40
> [ 1.208422] ? __wrmsr_on_cpu+0x4b/0x90
> [ 1.208422] ? __pfx___rdmsr_on_cpu+0x10/0x10
> [ 1.208422] ? __pfx___wrmsr_on_cpu+0x10/0x10
> [ 1.208422] generic_exec_single+0x7e/0x120
> [ 1.208422] smp_call_function_single+0x103/0x140
> [ 1.208422] ? __pfx___wrmsr_on_cpu+0x10/0x10
> [ 1.208422] wrmsrl_on_cpu+0x57/0x80
> [ 1.208422] intel_pstate_set_pstate+0x3e/0x80
> [ 1.208422] intel_pstate_get_cpu_pstates.constprop.0+0xd7/0x190
> [ 1.208422] intel_pstate_init_cpu+0x3f/0x140
> [ 1.208422] intel_cpufreq_cpu_init+0x44/0x270
> [ 1.208422] ? freq_qos_add_notifier+0x45/0x80
> [ 1.208422] cpufreq_online+0x444/0xb80
> [ 1.208422] cpufreq_add_dev+0x99/0xd0
> [ 1.208422] subsys_interface_register+0x11c/0x140
> [ 1.208422] cpufreq_register_driver+0x1b5/0x330
> [ 1.208422] intel_pstate_register_driver+0x48/0xd0
> [ 1.208422] intel_pstate_init+0x25c/0x810
> [ 1.208422] ? __pfx_intel_pstate_init+0x10/0x10
> [ 1.208422] do_one_initcall+0x5b/0x310
> [ 1.208422] do_initcalls+0x104/0x210
> [ 1.208422] ? __pfx_kernel_init+0x10/0x10
> [ 1.208422] kernel_init_freeable+0x134/0x1f0
> [ 1.208422] kernel_init+0x1b/0x200
> [ 1.208422] ret_from_fork+0x44/0x70
> [ 1.208422] ? __pfx_kernel_init+0x10/0x10
> [ 1.208422] ret_from_fork_asm+0x1b/0x30
> [ 1.208422] </TASK>
> 
> [Fix]
> Cherry pick of 7e1c3f584ee7 - cpufreq: intel_pstate: Support Emerald Rapids OOB mode
> Upstream since v6.11.
> 
> Very simple change as the OOB identifying bits are same as for the prior
> generation CPUs like Sapphire Rapids servers, so also add Emerald Rapids to the
> intel_pstate_cpu_oob_ids[] list.
> 
> [Test Plan]
> Set HW PM OOB mode in BIOS power management config.
> Make sure that no cpufreq drivers are loaded. You can verify that
> /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver is not present or any cpufreq interface.
> 
> It's also already part of linux-aws: https://bugs.launchpad.net/bugs/2078894
> 
> [Where problems could occur]
> cpufreq regression.
> 
> Srinivas Pandruvada (1):
>    cpufreq: intel_pstate: Support Emerald Rapids OOB mode
> 
>   drivers/cpufreq/intel_pstate.c | 1 +
>   1 file changed, 1 insertion(+)
>
Guoqing Jiang Oct. 18, 2024, 3:33 a.m. UTC | #2
Acked-by: Guoqing Jiang <guoqing.jiang@canonical.com>

On 10/18/24 04:37, Thibault Ferrante wrote:
> BugLink: https://bugs.launchpad.net/bugs/2084834
>
> [Impact]
>
> In Emerald Rapids VMs with OOB P-states enabled, a stack trace is
> printed during boot on 6.8 based kernels. The stack traces look like:
>
> [ 1.206658] intel_pstate: Intel P-state driver initializing
> [ 1.207453] unchecked MSR access error: WRMSR to 0x199 (tried to write 0x0000000000000800) at rIP: 0xffffffffb94c3b24 (native_write_msr+0x4/0x40)
> [ 1.208422] Call Trace:
> [ 1.208422] <TASK>
> [ 1.208422] ? show_stack_regs+0x23/0x40
> [ 1.208422] ? ex_handler_msr+0x10a/0x180
> [ 1.208422] ? fixup_exception+0x183/0x390
> [ 1.208422] ? gp_try_fixup_and_notify+0x23/0xc0
> [ 1.208422] ? exc_general_protection+0x15e/0x480
> [ 1.208422] ? asm_exc_general_protection+0x27/0x30
> [ 1.208422] ? __pfx___wrmsr_on_cpu+0x10/0x10
> [ 1.208422] ? native_write_msr+0x4/0x40
> [ 1.208422] ? __wrmsr_on_cpu+0x4b/0x90
> [ 1.208422] ? __pfx___rdmsr_on_cpu+0x10/0x10
> [ 1.208422] ? __pfx___wrmsr_on_cpu+0x10/0x10
> [ 1.208422] generic_exec_single+0x7e/0x120
> [ 1.208422] smp_call_function_single+0x103/0x140
> [ 1.208422] ? __pfx___wrmsr_on_cpu+0x10/0x10
> [ 1.208422] wrmsrl_on_cpu+0x57/0x80
> [ 1.208422] intel_pstate_set_pstate+0x3e/0x80
> [ 1.208422] intel_pstate_get_cpu_pstates.constprop.0+0xd7/0x190
> [ 1.208422] intel_pstate_init_cpu+0x3f/0x140
> [ 1.208422] intel_cpufreq_cpu_init+0x44/0x270
> [ 1.208422] ? freq_qos_add_notifier+0x45/0x80
> [ 1.208422] cpufreq_online+0x444/0xb80
> [ 1.208422] cpufreq_add_dev+0x99/0xd0
> [ 1.208422] subsys_interface_register+0x11c/0x140
> [ 1.208422] cpufreq_register_driver+0x1b5/0x330
> [ 1.208422] intel_pstate_register_driver+0x48/0xd0
> [ 1.208422] intel_pstate_init+0x25c/0x810
> [ 1.208422] ? __pfx_intel_pstate_init+0x10/0x10
> [ 1.208422] do_one_initcall+0x5b/0x310
> [ 1.208422] do_initcalls+0x104/0x210
> [ 1.208422] ? __pfx_kernel_init+0x10/0x10
> [ 1.208422] kernel_init_freeable+0x134/0x1f0
> [ 1.208422] kernel_init+0x1b/0x200
> [ 1.208422] ret_from_fork+0x44/0x70
> [ 1.208422] ? __pfx_kernel_init+0x10/0x10
> [ 1.208422] ret_from_fork_asm+0x1b/0x30
> [ 1.208422] </TASK>
>
> [Fix]
> Cherry pick of 7e1c3f584ee7 - cpufreq: intel_pstate: Support Emerald Rapids OOB mode
> Upstream since v6.11.
>
> Very simple change as the OOB identifying bits are same as for the prior
> generation CPUs like Sapphire Rapids servers, so also add Emerald Rapids to the
> intel_pstate_cpu_oob_ids[] list.
>
> [Test Plan]
> Set HW PM OOB mode in BIOS power management config.
> Make sure that no cpufreq drivers are loaded. You can verify that
> /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver is not present or any cpufreq interface.
>
> It's also already part of linux-aws: https://bugs.launchpad.net/bugs/2078894
>
> [Where problems could occur]
> cpufreq regression.
>
> Srinivas Pandruvada (1):
>    cpufreq: intel_pstate: Support Emerald Rapids OOB mode
>
>   drivers/cpufreq/intel_pstate.c | 1 +
>   1 file changed, 1 insertion(+)
>