On Fri, Sep 7, 2018 at 4:28 PM Wei Wang <wei.w.wang@xxxxxxxxx> wrote: > This patch adds support to KVM to save/restore the lbr stack on vCPU > context switching. > > When the guest sets the ACTIVE bit of MSR_KVM_PV_LBR_CTRL, a perf event > is created on the host for the related vCPU. This perf event ensures the > LBR stack to be saved/restored when the vCPU thread is scheduled out/in. > The perf event is removed and freed when the guest clears the ACTIVE > bit. [...] > +void guest_lbr_event_release(struct kvm_pmu *pmu) > +{ > + struct perf_event *event = pmu->guest_lbr_event; > + > + if (unlikely(!pmu->guest_lbr_event)) { > + pr_err("%s: guest_lbr_event already freed\n", __func__); > + return; > + } > + > + if (event) { > + event->pmu->stop(event, PERF_EF_UPDATE); > + perf_event_release_kernel(event); > + } > + pmu->guest_lbr_event = NULL; > +} Is there some guarantee that this method will be called when the vCPU is torn down on guest exit?