> > We optimize the current vPMU to work in this manner: > > > > (1) rely on the existing host perf (perf_event_create_kernel_counter) > > to allocate counters for in-use vPMC and always try to reuse events; > > (2) vPMU captures guest accesses to the eventsel and fixctrl msr directly > > to the hardware msr that the corresponding host event is scheduled on > > and avoid pollution from host is also needed in its partial runtime; > > If you do pass-through; how do you deal with event constraints? The guest has to deal with them. It already needs to know the model number to program the right events, can as well know the constraints too. For architectural events that don't need the model number it's not a problem because they don't have constraints. -Andi