Messages in this thread | | | Date | Thu, 10 Sep 2009 21:22:02 +1000 | From | Paul Mackerras <> | Subject | Re: [PATCH 1/5] perf_counter: Add open/close pmu callbacks |
| |
Frederic Weisbecker writes:
> Add the open() and close() callback to the pmu structure. > Open is called when a counter is initialized just after it's allocation > and close is called when the counter is about to be released. > > These callbacks are useful for example when a pmu has to deal with > several registers and needs to maintain an internal list of counters > using them. Given such list, the pmu is able to check if the the number > of physical registers are still sufficient for the new created counter > and then accept or refuse this counter.
We already do that sort of thing on powerpc for hardware counters.
It looks to me that you can easily do that stuff in the appropriate xxx_perf_counter_init function, since pmu->open() is only called immediately on return from one the various xxx_perf_counter_init functions, and xxx_perf_counter_init is what says what pmu struct to use.
As for ->close(), that's what counter->destroy is there for. On powerpc, hw_perf_counter_init sets counter->destroy to an appropriate destructor function, as does tp_perf_counter_init. So if you need a destructor for breakpoint counters, just make bp_perf_counter_init set counter->destroy appropriately.
Paul.
| |