On Thu, Oct 20, 2016 at 7:40 AM, Boris Ostrovsky <boris.ostrov...@oracle.com> wrote: > On 10/20/2016 10:11 AM, Andrew Cooper wrote: >> On 20/10/16 14:55, Kyle Huey wrote: >>>>> That said, rr currently does not work in Xen guests due to some PMU >>>>> issues that we haven't tracked down yet. >>>> Is this RR trying to use vPMU and it not functioning, or not >>>> specifically trying to use PMU facilities and getting stuck anyway? >>> The latter. rr relies on the values returned by the PMU (the retired >>> conditional branches counter in particular) being exactly the same >>> during the recording and replay phases. This is true when running on >>> bare metal, and when running inside a KVM guest, but when running in a >>> Xen HVM guest we see values that are off by a branch or two on a small >>> fraction of our tests. Since it works in KVM I suspect this is some >>> sort of issue with how Xen multiplexes the real PMU and events are >>> "leaking" between guests (or perhaps from Xen itself, though I don't >>> think the Xen kernel executes any ring 3 code). Even if that's >>> correct we're a long way from tracking it down and patching it though. >> Hmm. That is unfortunate, and does point towards a bug in Xen. Are >> these tests which notice the problem easy to run? >> >> Boris (CC'd) is the maintainer of that code. It has undergone quite a >> few changes recently. > > I am actually not the maintainer, I just break this code more often than > others. > > But yes, having a test case would make it much easier to understand what > and why is not working. > > Would something like > > wrmsr(PERFCTR,0); > wrmsr(EVNTSEL, XXX); //enable counter > // do something simple, with branches > wrmsr(EVTSEL,YYY); // disable counter > > demonstrate the problem? (I assume we are talking about HVM guest) > > -boris >
That is a good question. I'll see if I can reduce the problem down from "run Linux and run our tests inside it". - Kyle _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel