Messages in this thread | | | Date | Wed, 7 Oct 2009 23:30:18 +0200 | Subject | Re: [PATCH 2/2] perf_events: add event constraints support for Intel processors | From | stephane eranian <> |
| |
On Wed, Oct 7, 2009 at 10:46 PM, David Miller <davem@davemloft.net> wrote: > From: stephane eranian <eranian@googlemail.com> > Date: Wed, 7 Oct 2009 14:31:58 +0200 > >> What PPC does is probably the only way to do this given the interface between >> generic and machine-specific code. The one advantage I see is that it works >> inside an event group but also across event groups because that code does not >> look at group boundary, it only looks at the events and the number of available >> registers. The downside is that you duplicate state. >> >> Did I get this right, Paul? > > That's basically how his code works, yes. I intend on duplicating > it to some extent on sparc64 since I'm operating in a similar > problem space. > > So if at least some of this engine went to a generic place, there'd > be at least a 3rd user :-)
Based on my experience, the assignment problem is best handled in the architecture or model specific code. On some PMU models, it is way more complicated than just two events competing for the same counter. That's the case on Itanium, for instance. And that is also the case with AMD64 Northbridge events.
Something I forgot to mention earlier is that when you re-run the assignment code for the new event, no already assigned event can be kicked out in favor of the new event. An existing event can be moved to another counter at worst. Otherwise, you will evict an event which, the generic layer thinks, is currently running.
> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |