[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <DS0PR11MB63730A85E00683AB7F6F3E26DC4E9@DS0PR11MB6373.namprd11.prod.outlook.com>
Date: Thu, 22 Sep 2022 14:42:54 +0000
From: "Wang, Wei W" <wei.w.wang@...el.com>
To: Peter Zijlstra <peterz@...radead.org>
CC: "Liang, Kan" <kan.liang@...ux.intel.com>,
"Li, Xiaoyao" <xiaoyao.li@...el.com>,
Ingo Molnar <mingo@...hat.com>,
"Arnaldo Carvalho de Melo" <acme@...nel.org>,
Mark Rutland <mark.rutland@....com>,
"Alexander Shishkin" <alexander.shishkin@...ux.intel.com>,
Jiri Olsa <jolsa@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
"Christopherson,, Sean" <seanjc@...gle.com>,
Paolo Bonzini <pbonzini@...hat.com>,
"linux-perf-users@...r.kernel.org" <linux-perf-users@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"kvm@...r.kernel.org" <kvm@...r.kernel.org>
Subject: RE: [RFC PATCH v2 2/3] perf/x86/intel/pt: Introduce and export
pt_get_curr_event()
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);
Powered by blists - more mailing lists