Thread (43 messages) 43 messages, 4 authors, 2015-10-20

[PATCH V2 22/30] coresight: etm-perf: new PMU driver for ETM tracers

From: alexander.shishkin@linux.intel.com (Alexander Shishkin)
Date: 2015-10-19 15:39:59
Also in: lkml

Mathieu Poirier [off-list ref] writes:
+static int etm_event_pmu_start(struct perf_event *event)
+{
+	int cpu, ret;
+	cpumask_t mask;
+	struct coresight_device *csdev;
+
+	cpumask_clear(&mask);
+	if (event->cpu != -1)
+		cpumask_set_cpu(event->cpu, &mask);
+	else
+		cpumask_copy(&mask, cpu_online_mask);
+
+	for_each_cpu(cpu, &mask) {
+		csdev = per_cpu(csdev_src, cpu);
+
+		if (!source_ops(csdev)->perf_start)
+			continue;
+
+		ret = source_ops(csdev)->perf_start(csdev);
+		if (ret)
+			goto err;
So long as "perf_start" and "perf_stop" here mean
"pm_runtime_get()/put()", this can work, but in that case maybe a better
name should be used, because no real starting or stopping of anything
takes place here. Since pmu::event_init and event::destroy happen in
allocation/deallocation paths and at event scheduling, it's not a good
idea to actually start anything here.

Regards,
--
Alex
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help