Re: [PATCH v1 0/5] KVM in-guest performance monitoring

From: Avi Kivity
Date: Thu May 12 2011 - 05:51:36 EST


On 05/12/2011 12:33 PM, Joerg Roedel wrote:
On Wed, May 11, 2011 at 11:55:28AM -0400, Avi Kivity wrote:
> This not-for-merging patchset exposes an emulated version 1 architectural
> performance monitoring unit to KVM guests. The PMU is emulated using
> perf_events, so the host kernel can multiplex host-wide, host-user, and the
> guest on available resources.
>
> Caveats:
> - counters that have PMI (interrupt) enabled stop counting after the
> interrupt is signalled. This is because we need one-shot samples
> that keep counting, which perf doesn't support yet
> - some combinations of INV and CMASK are not supported
> - counters keep on counting in the host as well as the guest
> - the RDPMC instruction and CR4.PCE bit are not yet emulated
> - there is likely a bug in the implementation; running 'perf top' in
> a guest that spends 80% of its time in userspace shows perf itself
> as consuming almost all cpu
>
> perf maintainers: please consider the first three patches for merging (the
> first two make sense even without the rest). If you're familiar with the Intel
> PMU, please review patch 5 as well - it effectively undoes all your work
> of abstracting the PMU into perf_events by unabstracting perf_events into what
> is hoped is a very similar PMU.

Gaah, I was just about to submit a talk about PMU virtualization for KVM
Forum :)

Speed matters.

Anyway, I thought about a paravirt-approach instead of implementing a
real PMU... But there are certainly good reasons for both.

Note, at this time the architectural PMU is only recognized on an Intel host.

Is the statement "if an AMD processor returns non-zero information in cpuid leaf 0xa, then that processor will be compatible with other vendors' processors reporting the same information" correct?

If so, we can move the detection of the architectural pmu outside the cpu vendor checks, and this code will work on both AMD and Intel processors (even if the host cpu doesn't have an architectural PMU).

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/