Lines Matching defs:epc
1301 struct pmu *pmu = cpc->epc.pmu;
2455 struct perf_event_pmu_context *epc = event->pmu_ctx;
2456 struct perf_cpu_pmu_context *cpc = this_cpc(epc->pmu);
2491 epc->nr_freq--;
2805 struct perf_event_pmu_context *epc = event->pmu_ctx;
2806 struct perf_cpu_pmu_context *cpc = this_cpc(epc->pmu);
2848 epc->nr_freq++;
2910 struct perf_event_pmu_context *epc = event->pmu_ctx;
2911 struct perf_cpu_pmu_context *cpc = this_cpc(epc->pmu);
2992 struct perf_event_pmu_context *epc;
3003 for_each_epc(epc, &cpuctx->ctx, pmu, 0)
3004 perf_pmu_disable(epc->pmu);
3007 for_each_epc(epc, task_ctx, pmu, 0)
3008 perf_pmu_disable(epc->pmu);
3027 for_each_epc(epc, &cpuctx->ctx, pmu, 0)
3028 perf_pmu_enable(epc->pmu);
3031 for_each_epc(epc, task_ctx, pmu, 0)
3032 perf_pmu_enable(epc->pmu);
3901 pmu = cpc->epc.pmu;
4601 cpu_epc = &cpc->epc;
5046 __perf_init_event_pmu_context(struct perf_event_pmu_context *epc, struct pmu *pmu)
5048 epc->pmu = pmu;
5049 INIT_LIST_HEAD(&epc->pmu_ctx_entry);
5050 INIT_LIST_HEAD(&epc->pinned_active);
5051 INIT_LIST_HEAD(&epc->flexible_active);
5052 atomic_set(&epc->refcount, 1);
5171 struct perf_event_pmu_context *new = NULL, *pos = NULL, *epc;
5182 epc = &cpc->epc;
5184 if (!epc->ctx) {
5188 atomic_set(&epc->refcount, 2);
5189 epc->embedded = 1;
5190 list_add(&epc->pmu_ctx_entry, &ctx->pmu_ctx_list);
5191 epc->ctx = ctx;
5193 WARN_ON_ONCE(epc->ctx != ctx);
5194 atomic_inc(&epc->refcount);
5197 return epc;
5200 new = kzalloc_obj(*epc);
5216 list_for_each_entry(epc, &ctx->pmu_ctx_list, pmu_ctx_entry) {
5217 if (epc->pmu == pmu) {
5218 WARN_ON_ONCE(epc->ctx != ctx);
5219 atomic_inc(&epc->refcount);
5223 if (!pos && epc->pmu->type > pmu->type)
5224 pos = epc;
5227 epc = new;
5231 list_add_tail(&epc->pmu_ctx_entry, &ctx->pmu_ctx_list);
5233 list_add(&epc->pmu_ctx_entry, pos->pmu_ctx_entry.prev);
5235 epc->ctx = ctx;
5241 return epc;
5244 static void get_pmu_ctx(struct perf_event_pmu_context *epc)
5246 WARN_ON_ONCE(!atomic_inc_not_zero(&epc->refcount));
5252 container_of(head, typeof(*cpc), epc.rcu_head);
5259 struct perf_event_pmu_context *epc = container_of(head, typeof(*epc), rcu_head);
5261 kfree(epc);
5264 static void put_pmu_ctx(struct perf_event_pmu_context *epc)
5266 struct perf_event_context *ctx = epc->ctx;
5277 if (!atomic_dec_and_raw_lock_irqsave(&epc->refcount, &ctx->lock, flags))
5280 WARN_ON_ONCE(list_empty(&epc->pmu_ctx_entry));
5282 list_del_init(&epc->pmu_ctx_entry);
5283 epc->ctx = NULL;
5285 WARN_ON_ONCE(!list_empty(&epc->pinned_active));
5286 WARN_ON_ONCE(!list_empty(&epc->flexible_active));
5290 if (epc->embedded) {
5291 call_rcu(&epc->rcu_head, free_cpc_rcu);
5295 call_rcu(&epc->rcu_head, free_epc_rcu);
5777 * epc->ctx.
12825 if (cpc->epc.embedded) {
12827 put_pmu_ctx(&cpc->epc);
12886 __perf_init_event_pmu_context(&cpc->epc, pmu);
14416 struct perf_event_pmu_context *epc;
14422 epc = find_get_pmu_context(pmu, ctx, event);
14423 event->pmu_ctx = epc;