On Wed, Oct 30, 2019 at 04:07:31AM +0000, Kang, Luwei wrote: > > > For PEBS output to Intel PT, a Intel PT event should be the group > > > leader of an PEBS counter event in host. For Intel PT virtualization > > > enabling in KVM guest, the PT facilities will be passthrough to guest > > > and do not allocate PT event from host perf event framework. This is > > > different with PMU virtualization. > > > > > > Intel new hardware feature that can make PEBS enabled in KVM guest by > > > output PEBS records to Intel PT buffer. KVM need to allocate a event > > > counter for this PEBS event without Intel PT event leader. > > > > > > This patch add event owner check for PEBS output to PT event that only > > > non-kernel event need group leader(PT). > > > > > > Signed-off-by: Luwei Kang <luwei.kang@xxxxxxxxx> > > > --- > > > arch/x86/events/core.c | 3 ++- > > > include/linux/perf_event.h | 1 + > > > kernel/events/core.c | 2 +- > > > 3 files changed, 4 insertions(+), 2 deletions(-) > > > > > > diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c index > > > 7b21455..214041a 100644 > > > --- a/arch/x86/events/core.c > > > +++ b/arch/x86/events/core.c > > > @@ -1014,7 +1014,8 @@ static int collect_events(struct cpu_hw_events *cpuc, struct perf_event *leader, > > > * away, the group was broken down and this singleton event > > > * can't schedule any more. > > > */ > > > - if (is_pebs_pt(leader) && !leader->aux_event) > > > + if (is_pebs_pt(leader) && !leader->aux_event && > > > + !is_kernel_event(leader)) > > > > indent fail, but also, I'm not sure I buy this. > > > > Surely pt-on-kvm has a perf event to claim PT for the vCPU context? > > Hi Peter, > PT on KVM will not allocate perf events from host (this is different from performance counter). The guest PT MSRs value will be load to hardware directly before VM-entry. > A PT event is needed by PEBS event as the event group leader in native. In virtualization, we can allocate a counter for PEBS but can't assign a PT event as the leader of this PEBS event. Please, fix your MUA already. Then how does KVM deal with the host using PT? You can't just steal PT.