Re: [PATCH 3/4] x86/intel lbr: down with test_thread_flag(TIF_IA32)

From: Peter Zijlstra
Date: Wed Apr 20 2016 - 07:22:03 EST


On Thu, Apr 14, 2016 at 12:29:12PM -0700, Andy Lutomirski wrote:
> On Thu, Apr 14, 2016 at 11:10 AM, Dmitry Safonov <dsafonov@xxxxxxxxxxxxx> wrote:

> > @@ -724,7 +727,7 @@ static int branch_type(unsigned long from, unsigned long to, int abort)
> > * on 64-bit systems running 32-bit apps
> > */
> > #ifdef CONFIG_X86_64
> > - is64 = kernel_ip((unsigned long)addr) || !test_thread_flag(TIF_IA32);
> > + is64 = kernel_ip((unsigned long)addr) || user_64bit_mode(regs);
>
> Peterz, looking at this some more, would it make sense to pass
> user_regs and interrupt_regs (or whatever we'd call it) all the way
> through to here?

Urgh; again, wtf wasn't I Cc'ed to these patches?

And not sure; if we never need the user regs, calling
perf_get_user_regs() to set all that up seems like a massive waste of
cycles.