Go to file
Srinivas Pandruvada ac4e04d9e3 cpufreq: intel_pstate: Unchecked MSR aceess in legacy mode
When turbo mode is unavailable on a Skylake-X system, executing the
command:

 # echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo

results in an unchecked MSR access error:

 WRMSR to 0x199 (attempted to write 0x0000000100001300).

This issue was reproduced on an OEM (Original Equipment Manufacturer)
system and is not a common problem across all Skylake-X systems.

This error occurs because the MSR 0x199 Turbo Engage Bit (bit 32) is set
when turbo mode is disabled. The issue arises when intel_pstate fails to
detect that turbo mode is disabled. Here intel_pstate relies on
MSR_IA32_MISC_ENABLE bit 38 to determine the status of turbo mode.
However, on this system, bit 38 is not set even when turbo mode is
disabled.

According to the Intel Software Developer's Manual (SDM), the BIOS sets
this bit during platform initialization to enable or disable
opportunistic processor performance operations. Logically, this bit
should be set in such cases. However, the SDM also specifies that "OS
and applications must use CPUID leaf 06H to detect processors with
opportunistic processor performance operations enabled."

Therefore, in addition to checking MSR_IA32_MISC_ENABLE bit 38, verify
that CPUID.06H:EAX[1] is 0 to accurately determine if turbo mode is
disabled.

Fixes: 4521e1a0ce ("cpufreq: intel_pstate: Reflect current no_turbo state correctly")
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: All applicable <stable@vger.kernel.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2025-04-30 16:27:34 +02:00
arch Miscellaneous x86 fixes: 2025-04-18 14:04:57 -07:00
block vfs-6.15-rc3.fixes.2 2025-04-19 14:31:08 -07:00
certs
crypto
Documentation 16 hotfixes. 2 are cc:stable and the remainder address post-6.14 issues 2025-04-19 21:46:58 -07:00
drivers cpufreq: intel_pstate: Unchecked MSR aceess in legacy mode 2025-04-30 16:27:34 +02:00
fs gcc-15: add '__nonstring' markers to byte arrays 2025-04-20 11:57:54 -07:00
include cpufreq: Fix setting policy limits when frequency tables are used 2025-04-28 14:36:41 +02:00
init
io_uring
ipc
kernel vfs-6.15-rc3.fixes.2 2025-04-19 14:31:08 -07:00
lib
LICENSES
mm 16 hotfixes. 2 are cc:stable and the remainder address post-6.14 issues 2025-04-19 21:46:58 -07:00
net
rust
samples
scripts Rust fixes for v6.15 2025-04-19 10:02:43 -07:00
security
sound
tools tracing fixes for v6.15 2025-04-19 11:57:36 -07:00
usr
virt
.clang-format
.clippy.toml
.cocciconfig
.editorconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
.rustfmt.toml
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS 16 hotfixes. 2 are cc:stable and the remainder address post-6.14 issues 2025-04-19 21:46:58 -07:00
Makefile gcc-15: disable '-Wunterminated-string-initialization' entirely for now 2025-04-20 15:30:53 -07:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the reStructuredText markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.