On 2022-09-22 10:42 a.m., Wang, Wei W wrote: > On Thursday, September 22, 2022 10:10 PM, Peter Zijlstra wrote: >> On Thu, Sep 22, 2022 at 01:59:53PM +0000, Wang, Wei W wrote: >>> On Thursday, September 22, 2022 9:35 PM, Peter Zijlstra >>>> On Thu, Sep 22, 2022 at 12:58:49PM +0000, Wang, Wei W wrote: >>>> >>>>> Add a function to expose the current running PT event to users. >>>>> One usage is in KVM, it needs to get and disable the running host >>>>> PT event before VMEnter to the guest and resumes the event after >> VMexit to host. >>>> >>>> You cannot just kill a host event like that. If there is a host >>>> event, the guest looses out. >>> >>> OK. The intention was to pause the event (that only profiles host >>> info) when switching to guest, and resume when switching back to host. >> >> If the even doesn't profile guest context, then yes. If it does profile guest >> context, you can't. > > Seems better to add this one: If the guest host mode is enabled, I think the PT driver should not allow the perf tool to create a host event with !exclude_guest. Thanks, Kan > > +int perf_event_disable_local_exclude_guest(struct perf_event *event) > +{ > + struct perf_event_attr *attr = &event->attr; > + > + if (!attr->exclude_guest) > + return -EPERM; > + > + event_function_local(event, __perf_event_disable, NULL); > + > + return 0; > +} > +EXPORT_SYMBOL_GPL(perf_event_disable_local_exclude_guest); >