Re: [PATCH V2 1/6] perf,core: allow invalid context events to be part of sw/hw groups

From: Mark Rutland
Date: Mon Apr 20 2015 - 06:16:10 EST


On Sat, Apr 18, 2015 at 01:47:06AM +0100, Andi Kleen wrote:
> > ... which would give you arbitrary skew, because one counter is
> > free-running and the other is not (when scheduling a context in or out we stop
> > the PMU)
>
> Everyone just reads the counter and subtracts it from
> the last value they've seen.
>
> That's the same how any other shared free running counter work,
> such as the standard timer.
>
> The only thing that perf needs to enforce is that the counters
> are running with the same event.
>
> It also wouldn't work for sampling, but the uncore doesn't do
> sampling anyways.

If you don't care about sampling and only care about totals, then you
can just open the events concurrently *without* grouping them, as I
stated previously.

> > From my PoV that violates group semantics, because now the events aren't
> > always counting at the same time (which would be the reason I grouped
> > them in the first place).
>
> You never use the absolute value, just differences. The differences
> effectively count only when the group runs.

Except that the uncore PMU is counting during the periods the CPU PMU is
disabled (e.g. when it is being programmed, read, or written). There's a
race there that you cannot solve given the two are indepedent agents.

> > However, it is the case that you cannot offer group semantics.
>
> I don't think that's true.

I believe that it is. I also believe it doesn't matter since you don't
care about those semantics anyway. Given that you can just open
independent events, which is already possible.

Mark.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/