Messages in this thread | | | Subject | Re: [PATCH] perf: provide PMU when initing events | From | Peter Zijlstra <> | Date | Thu, 11 Aug 2011 13:43:57 +0200 |
| |
On Thu, 2011-08-11 at 12:31 +0100, Mark Rutland wrote: > Currently, an event's 'pmu' field is set after pmu::event_init() is > called. This means that pmu::event_init() must figure out which struct > pmu the event was initialised from. This makes it difficult to > consolidate common event initialisation code for similar PMUs, and > very difficult to implement drivers for PMUs which can have multiple > instances (e.g. a USB controller PMU, a GPU PMU, etc). > > This patch sets the 'pmu' field before initialising the event, allowing > event init code to identify the struct pmu instance easily. In the > event of failure to initialise an event, the event is destroyed via > kfree() without calling perf_event::destroy(), so this shouldn't > result in bad behaviour even if the destroy field was set before > failure to initialise was noted.
I thought there was a reason for things being the way they are, but since I can't seem to recollect and your argument does make sense to me I've merged it.
Thanks!
| |