Re: [PATCH V2 1/5] ara virt interface of perf to support kvm guestos statistics collection in guest os

From: Jes Sorensen
Date: Tue Jun 22 2010 - 03:15:16 EST


On 06/22/10 03:49, Zhang, Yanmin wrote:
> On Mon, 2010-06-21 at 14:45 +0300, Avi Kivity wrote:
>> Since the guest can use NMI to read the
>> counter, it should have the highest possible priority, and thus it
>> shouldn't see any overflow unless it configured the threshold really low.
>>
>> If we drop overflow, we can use the RDPMC instruction instead of
>> KVM_PERF_OP_READ. This allows the guest to allow userspace to read a
>> counter, or prevent userspace from reading the counter, by setting cr4.pce.
> 1) para virt perf interface is to hide PMU hardware in host os. Guest os shouldn't
> access PMU hardware directly. We could expose PMU hardware to guest os directly, but
> that would be another guest os PMU support method. It shouldn't be a part of para virt
> interface.
> 2) Consider below scenario: PMU counter overflows and NMI causes guest os vmexit to
> host kernel. Host kernel schedules the vcpu thread to another physical cpu before
> vmenter the guest os again. So later on, guest os just RDPMC the counter on another
> cpu.
>
> So I think above discussion is around how to expose PMU hardware to guest os. I will
> also check this method after the para virt interface is done.

You should be able to expose the counters as read-only to the guest. KVM
allows you to specify whether or not a guest has read, write or
read/write access. If you allowed read access of the counters that would
safe a fair bit of hyper calls.

Question is if it is safe to drop overflow support?

Cheers,
Jes

--
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/