• Frank van der Linden's avatar
    x86/CPU/AMD: Don't force the CPB cap when running under a hypervisor · 2ac44ab6
    Frank van der Linden authored
    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>
    2ac44ab6
amd.c 27.5 KB