On Mon, Mar 09, 2020 at 09:12:42AM -0400, Liang, Kan wrote: > > Suppose your KVM thing claims counter 0/2 (ICL/SKL) for some random PEBS > > event, and then the host wants to use PREC_DIST.. Then one of them will > > be screwed for no reason what so ever. > > > > The multiplexing should be triggered. > > For host, if both user A and user B requires PREC_DIST, the multiplexing > should be triggered for them. > Now, the user B is KVM. I don't think there is difference. The multiplexing > should still be triggered. Why it is screwed? Becuase if KVM isn't PREC_DIST we should be able to reschedule it to a different counter. > > How is that not destroying scheduling freedom? Any other situation we'd > > have moved the !PREC_DIST PEBS event to another counter. > > > > All counters are equivalent for them. It doesn't matter if we move it to > another counter. There is no impact for the user. But we cannot move it to another counter, because you're pinning it. > In the new proposal, KVM user is treated the same as other host events with > event constraint. The scheduler is free to choose whether or not to assign a > counter for it. That's what it does, I understand that. I'm saying that that is creating artificial contention. Why is this needed anyway? Can't we force the guest to flush and then move it over to a new counter?