lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 30 Aug 2018 17:13:55 +0200 From: Jiri Olsa <jolsa@...hat.com> To: Song Liu <songliubraving@...com> Cc: linux-kernel@...r.kernel.org, lkp@...el.com, kernel-team@...com, Tejun Heo <tj@...nel.org>, Peter Zijlstra <peterz@...radead.org>, Jiri Olsa <jolsa@...nel.org>, Alexey Budankov <alexey.budankov@...ux.intel.com> Subject: Re: [PATCH v2 1/1] perf: Sharing PMU counters across compatible events On Wed, Aug 15, 2018 at 10:03:13AM -0700, Song Liu wrote: SNIP > > + perf_event_remove_dup(event, ctx); > /* > * We can have double detach due to exit/hot-unplug + close. > */ > @@ -1982,6 +2123,92 @@ event_filter_match(struct perf_event *event) > perf_cgroup_match(event) && pmu_filter_match(event); > } > > +/* PMU sharing aware version of event->pmu->add() */ > +static int event_pmu_add(struct perf_event *event, > + struct perf_event_context *ctx) > +{ > + struct perf_event_dup *dup; > + int ret; > + > + /* no sharing, just do event->pmu->add() */ > + if (event->dup_id == -1) > + return event->pmu->add(event, PERF_EF_START); > + > + dup = &ctx->dup_events[event->dup_id]; > + > + if (dup->active_event_count) { > + /* already enabled */ > + dup->active_event_count++; > + dup->master->pmu->read(dup->master); > + event->dup_base_count = dup_read_count(dup); > + event->dup_base_child_count = dup_read_child_count(dup); > + return 0; > + } > + > + /* try add master */ > + ret = event->pmu->add(dup->master, PERF_EF_START); > + > + if (!ret) { > + dup->active_event_count = 1; > + event->pmu->read(dup->master); > + event->dup_base_count = dup_read_count(dup); > + event->dup_base_child_count = dup_read_child_count(dup); should you read the base before calling pmu->add ? should be same for any dup event not just master jirka
Powered by blists - more mailing lists