On Tue, Jul 14, 2015 at 08:01:54PM -0700, Sukadev Bhattiprolu wrote:
> +/*
> + * Use the transaction interface to read the group of events in @leader.
> + * PMUs like the 24x7 counters in Power, can use this to queue the events
> + * in the ->read() operation and perform the actual read in ->commit_txn.
> + *
> + * Other PMUs can ignore the ->start_txn and ->commit_txn and read each
> + * PMU directly in the ->read() operation.
> + */
> +static int perf_event_read_group(struct perf_event *leader)
> +{
> +     int ret;
> +     struct perf_event *sub;
> +     struct pmu *pmu;
> +
> +     pmu = leader->pmu;
> +
> +     pmu->start_txn(pmu, PERF_PMU_TXN_READ);
> +
> +     perf_event_read(leader);

There should be a lockdep assert with that list iteration.

> +     list_for_each_entry(sub, &leader->sibling_list, group_entry)
> +             perf_event_read(sub);
> +
> +     ret = pmu->commit_txn(pmu);
> +
> +     return ret;
> +}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to