mirror-linux/Documentation
Jim Mattson a7cec20845 KVM: x86: Provide a capability to disable APERF/MPERF read intercepts
Allow a guest to read the physical IA32_APERF and IA32_MPERF MSRs
without interception.

The IA32_APERF and IA32_MPERF MSRs are not virtualized. Writes are not
handled at all. The MSR values are not zeroed on vCPU creation, saved
on suspend, or restored on resume. No accommodation is made for
processor migration or for sharing a logical processor with other
tasks. No adjustments are made for non-unit TSC multipliers. The MSRs
do not account for time the same way as the comparable PMU events,
whether the PMU is virtualized by the traditional emulation method or
the new mediated pass-through approach.

Nonetheless, in a properly constrained environment, this capability
can be combined with a guest CPUID table that advertises support for
CPUID.6:ECX.APERFMPERF[bit 0] to induce a Linux guest to report the
effective physical CPU frequency in /proc/cpuinfo. Moreover, there is
no performance cost for this capability.

Signed-off-by: Jim Mattson <jmattson@google.com>
Link: https://lore.kernel.org/r/20250530185239.2335185-3-jmattson@google.com
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Link: https://lore.kernel.org/r/20250626001225.744268-3-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
2025-07-09 09:33:37 -07:00
..
ABI Char/Misc/IIO pull request for 6.16-rc1 2025-06-06 11:50:47 -07:00
PCI Merge branch 'pci/misc' 2025-06-04 10:50:45 -05:00
RCU
accel
accounting
admin-guide smb: client: disable path remapping with POSIX extensions 2025-06-09 15:59:03 -05:00
arch RISC-V Patches for the 6.16 Merge Window, Part 1 2025-06-06 18:05:18 -07:00
block Documentation: ublk: Separate UBLK_F_AUTO_BUF_REG fallback behavior sublists 2025-06-13 09:25:42 -06:00
bpf
cdrom
core-api Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
cpu-freq
crypto
dev-tools
devicetree pinctrl: MAINTAINERS: Drop bouncing Jianlong Huang 2025-06-09 10:16:46 +02:00
doc-guide
driver-api Char/Misc/IIO pull request for 6.16-rc1 2025-06-06 11:50:47 -07:00
edac cxl/edac: Add CXL memory device soft PPR control feature 2025-05-23 13:25:06 -07:00
fault-injection
fb fbdev: sstfb.rst: Fix spelling mistake 2025-05-31 10:24:02 +02:00
features LoongArch: Enable ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS 2025-05-30 21:45:42 +08:00
filesystems docs: proc: update VmFlags documentation in smaps 2025-06-11 22:42:35 -07:00
firmware-guide
firmware_class
fpga
gpu drm fixes for 6.16-rc1 2025-06-06 08:09:56 -07:00
hid
hwmon hwmon updates for v6.16 2025-06-03 09:11:26 -07:00
i2c
iio docs: iio: ad3552r: fix malformed table 2025-05-21 14:19:46 +01:00
images
infiniband
input Input: amijoy - make headings compliant w/ guidelines in documentation 2025-05-30 15:34:38 -07:00
isdn
kbuild Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
kernel-hacking
leds LEDs for v6.16 2025-06-03 12:10:31 -07:00
litmus-tests
livepatch
locking
maintainer
mhi
misc-devices misc: amd-sbi: Add document for AMD SB IOCTL description 2025-05-21 14:44:41 +02:00
mm Docs/damon: update titles and brief introductions to explain DAMOS 2025-05-22 14:55:38 -07:00
netlabel
netlink netlink: specs: rt-link: decode ip6gre 2025-06-05 12:50:10 +02:00
networking - The 11 patch series "Add folio_mk_pte()" from Matthew Wilcox 2025-05-31 15:44:16 -07:00
nvdimm
nvme
pcmcia
peci
power
process - The 3 patch series "hung_task: extend blocking task stacktrace dump to 2025-05-31 19:12:53 -07:00
rust Documentation: rust: testing: add docs on the new KUnit `#[test]` tests 2025-05-27 20:09:59 +02:00
scheduler sched_ext: Changes for v6.16 2025-05-27 21:12:50 -07:00
scsi
security
sound
sphinx
sphinx-static
spi
staging rpmsg updates for v6.16 2025-06-02 11:06:44 -07:00
sunrpc/xdr
target
tee
timers
tools
trace Char/Misc/IIO pull request for 6.16-rc1 2025-06-06 11:50:47 -07:00
translations Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
usb
userspace-api LoongArch changes for v6.16 2025-06-07 09:56:18 -07:00
virt KVM: x86: Provide a capability to disable APERF/MPERF read intercepts 2025-07-09 09:33:37 -07:00
w1
watchdog
wmi
.gitignore
Changes
CodingStyle
Kconfig
Makefile
SubmittingPatches
atomic_bitops.txt
atomic_t.txt
conf.py
docutils.conf
index.rst
memory-barriers.txt
subsystem-apis.rst