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
