On Sun, 2010-07-18 at 21:06 +0100, Matt Fleming wrote:> On Sat, 26 Jun 2010 16:14:46 +0100, Matt Fleming <matt@console-pimps.org> wrote:> > On Fri, 25 Jun 2010 16:48:05 +0200, Peter Zijlstra <peterz@infradead.org> wrote:> > > > > > Ah, yes, it would be nice for SH (which doesn't have a PMI) to couple a> > > software timer with their hardware counter to get samples.> > > > > > Never got around to actually implementing that though, maybe Paul has a> > > minion interested in making that work?> > > > I'll take a look at it.> > How does the 'group_fd' parameter relate to the lack of PMI? Is the idea> to have one hrtimer that, when it fires, we sample all the counters? So> the first counter to be created is the group leader, which starts the> hrtimer, and all other counters are linked to this one? I had a go at> using a hrtimer per counter (minus any weighting of samples) and it> worked OK and seemed sensible given that we may want to sample counters> at different frequencies.> > Is this what you had in mind with the 'group_fd' paramter, Peter? That> there'd be only one hrtimer?

Right. So sys_perf_event_open() creates a stand alone event, but if yousupply the group_fd param it will attach the newly created one to theleader indicated by group_fd.

Groups have the properly that they will always be scheduled together,and read/sample can access/provide data of all of them.

So you can have a sampling leader report the counts of its siblings.

You can make multiple groups, like {hrtimer, cycles} and {hrtimer,instructions} and {hrtimer, dcache-miss} and perf will schedule thestuff. If you'd try to do {hrtimer, cycles, insns, dcache-miss} but onlyhave 2 hardware counters the group creation should fail because theimplementation should dis-allow creating groups that cannot bescheduled