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 kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html