On Mon, Jun 06, 2016 at 11:29:36AM +0200, Hendrik Brueckner wrote: > > > Looks like perf_pmu_register does not like to be called twice (once for > > > the counter > > > and once for the sampling facility). > > > > Twice isn't the problem per se, its trying to register two PMUs for > > perf_hw_context that is the problem. > > > > The perf core does not expect or deal well with that. > > > > The perf core expects a single HW PMU in that when it schedules > > hw_context events, and encounters an failure to pmu::add() (because the > > hw pmu is 'full') it stops trying to add more events. > > On s390, there are actually two distinct measurement facilities and, thus, > two HW PMUs for each. There is the hardware counter and hardware sampling > facility/PMU.
Can you quickly describe the cf one; or provide a link to a document doing so? If this is a simple always running counter without interrupt you could make it a 'software' PMU which can always schedule, similar to the x86 MSR driver (arch/x86/events/msr.c).