On 27.08.10 15:17:45, Matt Fleming wrote: > > > --- a/arch/sh/kernel/perf_event.c > > > +++ b/arch/sh/kernel/perf_event.c > > > @@ -60,6 +60,19 @@ static inline int sh_pmu_initialized(void) > > > } > > > > > > /* > > > + * Return the number of events for the current sh_pmu. > > > + */ > > > +int sh_pmu_num_events(void) > > > +{ > > > + return sh_pmu->num_events; > > > +} > > > + > > > +const char *sh_pmu_name(void) > > > +{ > > > + return sh_pmu->name; > > > +} > > This accessor functions should be generic for all architectures. > > This isn't going to work. ARM uses an integer ID whereas SH uses a > string name. This is specific to an architecture and making it generic > would probably involve some abstraction layer. Perf should provide the interface to detect the number of counters (btw. *num_events is wrong) and the name of the pmu. The information is part of perf and thus the functions accessing it should be part of perf too, not oprofile. We also need generic functions, because we want to have a generic oprofile-perf driver. I don't see that this is hard to implement. We could add function stubs returning an error or invalid value using the __weak attribute and implement it for those architectures where we need it. -Robert -- Advanced Micro Devices, Inc. Operating System Research Center -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html