This series contains a set of fixes, cleanups, and improvements in
target/i386 related to PMU, legacy PEBS, and MSR handling.
The patches are grouped into a single series for review convenience.
Smoe of them are not tightly coupled and can be reviewed and applied
individually.
Technically, the PEBS-related changes could be split into a separate
series. However, they touch closely related PMU and MSR code paths,
and keeping them together here makes review easier and helps avoid
potential merge conflicts.
Patch series overview:
Patches 1–5: Miscellaneous PMU/MSR fixes and cleanups.
Patches 8–9: Refactoring in preparation for pebs-fmt support.
Patches 6–7, 10–11: Complete legacy PEBS support in QEMU.
Changes since v1:
- Add two new patches to clean up and refactor LBR format handling.
- Introduce a new pebs-fmt command-line option.
- Add a patch to avoid exposing PEBS capabilities when not enabled.
- Trivial fixes and cleanups.
Dapeng Mi (3):
target/i386: Don't save/restore PERF_GLOBAL_OVF_CTRL MSR
target/i386: Support full-width writes for perf counters
target/i386: Save/Restore DS based PEBS specfic MSRs
Zide Chen (8):
target/i386: Disable unsupported BTS for guest
target/i386: Gate enable_pmu on kvm_enabled()
target/i386: Increase MSR_BUF_SIZE and split KVM_[GET/SET]_MSRS calls
target/i386: Make some PEBS features user-visible
target/i386: Clean up LBR format handling
target/i386: Refactor LBR format handling
target/i386: Add pebs-fmt CPU option
target/i386: Disable guest PEBS capability when not enabled
target/i386/cpu.c | 130 ++++++++++++++++++++----------
target/i386/cpu.h | 29 ++++++-
target/i386/kvm/kvm-cpu.c | 3 +
target/i386/kvm/kvm.c | 163 +++++++++++++++++++++++++++++++-------
target/i386/machine.c | 35 ++++++--
5 files changed, 281 insertions(+), 79 deletions(-)
--
2.52.0