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 doc/RCU/listRCU: refine example code for eliminating stale data 2025-05-16 09:00:54 -04:00
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 bpf: Add support for __prog argument suffix to pass in prog->aux 2025-05-13 18:47:54 -07:00
cdrom
core-api Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
cpu-freq
crypto
dev-tools Documentation: kunit: improve example on testing static functions 2025-05-19 13:22:21 -06:00
devicetree pinctrl: MAINTAINERS: Drop bouncing Jianlong Huang 2025-06-09 10:16:46 +02:00
doc-guide Docs: doc-guide: update sphinx.rst Sphinx version number 2025-05-21 04:28:29 -06:00
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 docs: i2c: Fix "resitors" to "resistors" 2025-05-20 11:22:16 +02:00
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 PM: EM: Documentation: Fix typos in example driver code 2025-05-13 14:30:01 +02:00
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 scsi: docs: Clean up some style in scsi_mid_low_api 2025-05-12 22:11:55 -04:00
security
sound
sphinx docs: kerneldoc.py: simplify exception handling logic 2025-05-21 03:53:40 -06:00
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 platform/x86: dell-ddv: Expose the battery health to userspace 2025-05-12 13:20:42 +03:00
.gitignore
Changes
CodingStyle
Kconfig
Makefile
SubmittingPatches
atomic_bitops.txt
atomic_t.txt
conf.py docs: conf.py: drop backward support for old Sphinx versions 2025-05-19 08:02:14 -06:00
docutils.conf
index.rst
memory-barriers.txt
subsystem-apis.rst