Re: [RFC PATCH] x86/delay: Do not use cpu_tss in preemptible ctxt in delay_mwaitx()
From: Borislav Petkov
Date: Wed Mar 09 2016 - 13:10:31 EST
On Wed, Mar 09, 2016 at 09:56:39AM -0800, Andy Lutomirski wrote:
> On Mar 9, 2016 3:38 AM, "Borislav Petkov" <bp@xxxxxxxxx> wrote:
> > From: Borislav Petkov <bp@xxxxxxx>
> > So Andy had a good idea about using a cacheline-aligned, seldomly used
> > per-cpu var as the MONITORX target but we can't use it in preemptible
> > context. The first simple idea I have is to disable preemption around us
> > dereffing it.
> What's the actual problem? Is it the preempt warnings and, if so,
> would raw_cpu_ptr fix it?
Yeah, it is the warning:
[ 1.565876] BUG: using smp_processor_id() in preemptible  code: udevd/312
[ 1.566123] caller is delay_mwaitx+0x40/0xa0
and yes, I think so. I don't think we care about being in preemptible
context since we're going idle anyway and doesn't matter which cpu_tss
Yeah, I'll use raw_cpu_ptr...
> It may pay to move it into the loop, though.
... and won't need to do that.
Thanks for the idea.
ECO tip #101: Trim your mails when you reply.