lkml.org 
[lkml]   [2015]   [Jul]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v3 7/8] perf: Define PMU_TXN_READ interface
    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;
    > +}


    \
     
     \ /
      Last update: 2015-07-17 00:41    [W:2.290 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site