[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 RESEND 07/17] x86/VPMU: Add public xenpmu.h
> From: Boris Ostrovsky [mailto:boris.ostrovsky@xxxxxxxxxx] > Sent: Wednesday, April 23, 2014 8:50 PM > > Add pmu.h header files, move various macros and structures that will be > shared between hypervisor and PV guests to it. > > Move MSR banks out of architectural PMU structures to allow for larger sizes > in the future. The banks are allocated immediately after the context and > PMU structures store offsets to them. > > Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> > --- > xen/arch/x86/hvm/svm/vpmu.c | 71 > ++++++++++++++------------ > xen/arch/x86/hvm/vmx/vpmu_core2.c | 87 > +++++++++++++++++--------------- > xen/arch/x86/hvm/vpmu.c | 1 + > xen/arch/x86/oprofile/op_model_ppro.c | 6 ++- > xen/include/asm-x86/hvm/vmx/vpmu_core2.h | 32 ------------ > xen/include/asm-x86/hvm/vpmu.h | 13 ++--- > xen/include/public/arch-arm.h | 3 ++ > xen/include/public/arch-x86/pmu.h | 63 > +++++++++++++++++++++++ > xen/include/public/pmu.h | 38 ++++++++++++++ > 9 files changed, 199 insertions(+), 115 deletions(-) > delete mode 100644 xen/include/asm-x86/hvm/vmx/vpmu_core2.h > create mode 100644 xen/include/public/arch-x86/pmu.h > create mode 100644 xen/include/public/pmu.h > > diff --git a/xen/include/public/arch-x86/pmu.h > b/xen/include/public/arch-x86/pmu.h > new file mode 100644 > index 0000000..fc022e2 > --- /dev/null > +++ b/xen/include/public/arch-x86/pmu.h > @@ -0,0 +1,63 @@ > +#ifndef __XEN_PUBLIC_ARCH_X86_PMU_H__ > +#define __XEN_PUBLIC_ARCH_X86_PMU_H__ > + > +/* x86-specific PMU definitions */ > + > +/* AMD PMU registers and structures */ > +struct xen_pmu_amd_ctxt { > + uint32_t counters; /* Offset to counter MSRs */ > + uint32_t ctrls; /* Offset to control MSRs */ > + uint32_t msr_bitmap_set; /* Used by HVM only */ > +}; > + > +/* Intel PMU registers and structures */ > +struct xen_pmu_cntr_pair { > + uint64_t counter; > + uint64_t control; > +}; > + > +struct xen_pmu_intel_ctxt { > + uint64_t global_ctrl; > + uint64_t global_ovf_ctrl; > + uint64_t global_status; > + uint64_t fixed_ctrl; > + uint64_t ds_area; > + uint64_t pebs_enable; > + uint64_t debugctl; > + uint32_t fixed_counters; /* Offset to fixed counter MSRs */ > + uint32_t arch_counters; /* Offset to architectural counter MSRs */ > +}; > + > +#define XENPMU_MAX_CTXT_SZ (sizeof(struct xen_pmu_amd_ctxt) > > \ > + sizeof(struct > xen_pmu_intel_ctxt) ? \ > + sizeof(struct > xen_pmu_amd_ctxt) : \ > + sizeof(struct > xen_pmu_intel_ctxt)) > +#define XENPMU_CTXT_PAD_SZ (((XENPMU_MAX_CTXT_SZ + 64) & > ~63) + 128) > +struct xen_arch_pmu { > + union { > + struct cpu_user_regs regs; > + uint8_t pad1[256]; > + } r; > + union { > + uint32_t lapic_lvtpc; > + uint64_t pad2; > + } l; > + union { > + struct xen_pmu_amd_ctxt amd; > + struct xen_pmu_intel_ctxt intel; > + uint8_t pad3[XENPMU_CTXT_PAD_SZ]; > + } c; > +}; 'xen_' prefix is meaningless here, and suppose to sustain vpmu in the names. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |