Re: [PATCH v2 1/2] x86/msr: Carry on after a non-"safe" MSR access fails without !panic_on_oops

From: Peter Zijlstra
Date: Wed Sep 30 2015 - 09:10:47 EST

On Mon, Sep 21, 2015 at 09:36:15AM -0700, Linus Torvalds wrote:
> On Mon, Sep 21, 2015 at 1:46 AM, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
> >
> > Linus, what's your preference?
> So quite frankly, is there any reason we don't just implement
> native_read_msr() as just
> unsigned long long native_read_msr(unsigned int msr)
> {
> int err;
> unsigned long long val;
> val = native_read_msr_safe(msr, &err);
> WARN_ON_ONCE(err);
> return val;
> }
> Note: no inline, no nothing. Just put it in arch/x86/lib/msr.c, and be
> done with it. I don't see the downside.
> How many msr reads are <i>so</i> critical that the function call
> overhead would matter? Get rid of the inline version of the _safe()
> thing too, and put that thing there too.

There are a few in the perf code, and esp. on cores without a stack
engine the call overhead is noticeable. Also note that the perf MSRs are
generally optimized MSRs and less slow (we cannot say fast, they're
still MSRs) than regular MSRs.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at