Re: [patch 2/4] x86/perf/intel/cstate: Sanitize probing

From: Thomas Gleixner
Date: Mon Mar 21 2016 - 11:05:23 EST


On Mon, 21 Mar 2016, Peter Zijlstra wrote:

> On Mon, Mar 21, 2016 at 02:19:27PM +0000, Liang, Kan wrote:
>
> > > - /* Probe the cstate events. */
> > > - for (i = 0; i < max_event_nr; i++) {
> > > - if (!msr[i].test(i) || rdmsrl_safe(msr[i].msr, &val))
> > > - msr[i].attr = NULL;
> > > - }
> >
> > I think we need to update msr[i].attr as well.
> > Because in cstate_pmu_event_init we still need it to do check.
>
> Yeah, this is exploding on all sides..

Gah crap. Why did this not explode in my face? Delta patch below.

Thanks,

tglx

--- a/arch/x86/events/intel/cstate.c
+++ b/arch/x86/events/intel/cstate.c
@@ -553,6 +553,8 @@ static bool __init cstate_probe_msr(cons
if (!rdmsrl_safe(msr[bit].msr, &val)) {
*attrs++ = &msr[bit].attr->attr.attr;
found = true;
+ } else {
+ msr[bit].attr = NULL;
}
}
*attrs = NULL;