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: +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);