Skip to content
  • Frank van der Linden's avatar
    x86/CPU/AMD: Don't force the CPB cap when running under a hypervisor · a35e7822
    Frank van der Linden authored
    [ Upstream commit 2ac44ab6
    
     ]
    
    For F17h AMD CPUs, the CPB capability ('Core Performance Boost') is forcibly set,
    because some versions of that chip incorrectly report that they do not have it.
    
    However, a hypervisor may filter out the CPB capability, for good
    reasons. For example, KVM currently does not emulate setting the CPB
    bit in MSR_K7_HWCR, and unchecked MSR access errors will be thrown
    when trying to set it as a guest:
    
    	unchecked MSR access error: WRMSR to 0xc0010015 (tried to write 0x0000000001000011) at rIP: 0xffffffff890638f4 (native_write_msr+0x4/0x20)
    
    	Call Trace:
    	boost_set_msr+0x50/0x80 [acpi_cpufreq]
    	cpuhp_invoke_callback+0x86/0x560
    	sort_range+0x20/0x20
    	cpuhp_thread_fun+0xb0/0x110
    	smpboot_thread_fn+0xef/0x160
    	kthread+0x113/0x130
    	kthread_create_worker_on_cpu+0x70/0x70
    	ret_from_fork+0x35/0x40
    
    To avoid this issue, don't forcibly set the CPB capability for a CPU
    when running under a hypervisor.
    
    Signed-off-by: default avatarFrank van der Linden <fllinden@amazon.com>
    Acked-by: default avatarBorislav Petkov <bp@suse.de>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: bp@alien8.de
    Cc: jiaxun.yang@flygoat.com
    Fixes: 02371991 ("x86/CPU/AMD: Set the CPB bit unconditionally on F17h")
    Link: http://lkml.kernel.org/r/20190522221745.GA15789@dev-dsk-fllinden-2c-c1893d73.us-west-2.amazon.com
    
    
    [ Minor edits to the changelog. ]
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    a35e7822