Messages in this thread | | | Date | Wed, 03 Oct 2012 12:27:38 +0200 | From | Avi Kivity <> | Subject | Re: [PATCH 06/31] perf, kvm: Support the intx/intx_cp modifiers in KVM arch perfmon emulation |
| |
On 10/03/2012 01:48 AM, Andi Kleen wrote: > From: Andi Kleen <ak@linux.intel.com> > > This is not arch perfmon, but older CPUs will just ignore it. This makes > it possible to do at least some TSX measurements from a KVM guest > > Cc: avi@redhat.com > Signed-off-by: Andi Kleen <ak@linux.intel.com> > --- > arch/x86/kvm/pmu.c | 13 ++++++++++--- > 1 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/kvm/pmu.c b/arch/x86/kvm/pmu.c > index 9b7ec11..f72a409 100644 > --- a/arch/x86/kvm/pmu.c > +++ b/arch/x86/kvm/pmu.c > @@ -160,7 +160,7 @@ static void stop_counter(struct kvm_pmc *pmc) > > static void reprogram_counter(struct kvm_pmc *pmc, u32 type, > unsigned config, bool exclude_user, bool exclude_kernel, > - bool intr) > + bool intr, bool intx, bool intx_cp) > { > struct perf_event *event; > struct perf_event_attr attr = { > @@ -173,6 +173,11 @@ static void reprogram_counter(struct kvm_pmc *pmc, u32 type, > .exclude_kernel = exclude_kernel, > .config = config, > }; > + /* Will be ignored on CPUs that don't support this. */ > + if (intx) > + attr.config |= HSW_INTX; > + if (intx_cp) > + attr.config |= HSW_INTX_CHECKPOINTED; > > attr.sample_period = (-pmc->counter) & pmc_bitmask(pmc); > > @@ -239,7 +244,9 @@ static void reprogram_gp_counter(struct kvm_pmc *pmc, u64 eventsel) > reprogram_counter(pmc, type, config, > !(eventsel & ARCH_PERFMON_EVENTSEL_USR), > !(eventsel & ARCH_PERFMON_EVENTSEL_OS), > - eventsel & ARCH_PERFMON_EVENTSEL_INT); > + eventsel & ARCH_PERFMON_EVENTSEL_INT, > + !!(eventsel & HSW_INTX), > + !!(eventsel & HSW_INTX_CHECKPOINTED)); > } >
Those !! are !necessary, since the formal argument is a bool.
-- error compiling committee.c: too many arguments to function
| |