[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 0/2] Restricted VPMU filter flags
This patch series fixes a minor bug with cpuid register usage for fixed PMC counts, and implements two VPMU filter flags. The VPMU feature of Xen is incredibly useful for performance analysis, however, it is currently all counters or nothing. In secure environments, there can be hesitation to enable access to all PMCs. This series introduces two new flags (in addition to the existing "bts"): vpmu=ipc: As the most restricted minimum set. This enables cycles, reference cycles, and instructions only. This is enough to calculate instructions per cycle (IPC). vpm=arch: This enables the 7 pre-defined architectural events as listed in cpuid, and in Table 18-1 of the Intel software developer's manual, vol 3B. There can be additional flags added later on, to allow access to other groups of PMCs. As an example of these flags, here is Linux perf running in a PVHVM guest with the new vpmu=ipc mode: root@vm0hvm:~# perf stat -d ./noploop Performance counter stats for './noploop': 1511.326375 task-clock (msec) # 0.999 CPUs utilized 24 context-switches # 0.016 K/sec 0 cpu-migrations # 0.000 K/sec 113 page-faults # 0.075 K/sec 5,028,638,883 cycles # 3.327 GHz 0 stalled-cycles-frontend # 0.00% frontend cycles idle 0 stalled-cycles-backend # 0.00% backend cycles idle 20,043,427,933 instructions # 3.99 insns per cycle 0 branches # 0.000 K/sec 0 branch-misses # 0.00% of all branches 0 L1-dcache-loads # 0.000 K/sec 0 L1-dcache-load-misses # 0.00% of all L1-dcache hits 0 LLC-loads # 0.000 K/sec <not supported> LLC-load-misses:HG Note that IPC is shown ("insns per cycle"), but other counters are not. Changes in v2: * feature flags can now be combined (eg, "vpmu=ipc,bts") * addressing review comments from Boris: * restrict DS_AREA and PEBS_ENABLE access when filters are in use * better variable types * include MSR_IA32_CMT_EVTSEL_UE_MASK flag Brendan Gregg (2): x86/VPMU: return correct fixed PMC count x86/VPMU: implement ipc and arch filter flags docs/misc/xen-command-line.markdown | 14 +++++++++- xen/arch/x86/cpu/vpmu.c | 51 ++++++++++++++++++++++++++++------- xen/arch/x86/cpu/vpmu_intel.c | 54 ++++++++++++++++++++++++++++++++++--- xen/include/asm-x86/msr-index.h | 1 + xen/include/public/pmu.h | 14 ++++++++-- 5 files changed, 118 insertions(+), 16 deletions(-) -- 1.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |