[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CALCETrWNBNCuNv==ZTBom5+X-Wyp+4_tsy=C_at-orv=0H3kuA@mail.gmail.com>
Date: Tue, 19 May 2020 13:27:43 -0700
From: Andy Lutomirski <luto@...nel.org>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: LKML <linux-kernel@...r.kernel.org>, X86 ML <x86@...nel.org>,
"Paul E. McKenney" <paulmck@...nel.org>,
Andy Lutomirski <luto@...nel.org>,
Alexandre Chartre <alexandre.chartre@...cle.com>,
Frederic Weisbecker <frederic@...nel.org>,
Paolo Bonzini <pbonzini@...hat.com>,
Sean Christopherson <sean.j.christopherson@...el.com>,
Masami Hiramatsu <mhiramat@...nel.org>,
Petr Mladek <pmladek@...e.com>,
Steven Rostedt <rostedt@...dmis.org>,
Joel Fernandes <joel@...lfernandes.org>,
Boris Ostrovsky <boris.ostrovsky@...cle.com>,
Juergen Gross <jgross@...e.com>,
Brian Gerst <brgerst@...il.com>,
Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
Josh Poimboeuf <jpoimboe@...hat.com>,
Will Deacon <will@...nel.org>,
Tom Lendacky <thomas.lendacky@....com>,
Wei Liu <wei.liu@...nel.org>,
Michael Kelley <mikelley@...rosoft.com>,
Jason Chen CJ <jason.cj.chen@...el.com>,
Zhao Yakui <yakui.zhao@...el.com>,
"Peter Zijlstra (Intel)" <peterz@...radead.org>
Subject: Re: [patch V6 21/37] x86/entry: Add IRQENTRY_IRQ macro
On Fri, May 15, 2020 at 5:10 PM Thomas Gleixner <tglx@...utronix.de> wrote:
>
>
> Provide a seperate IDTENTRY macro for device interrupts. Similar to
> IDTENTRY_ERRORCODE with the addition of invoking irq_enter/exit_rcu() and
> providing the errorcode as a 'u8' argument to the C function, which
> truncates the sign extended vector number.
Acked-by: Andy Lutomirski <luto@...nel.org>
with a minor minor optimization suggestion:
> +.macro idtentry_irq vector cfunc
> + .p2align CONFIG_X86_L1_CACHE_SHIFT
> +SYM_CODE_START_LOCAL(asm_\cfunc)
> + ASM_CLAC
> + SAVE_ALL switch_stacks=1
> + ENCODE_FRAME_POINTER
> + movl %esp, %eax
> + movl PT_ORIG_EAX(%esp), %edx /* get the vector from stack */
You could save somewhere between 0 and 1 cycles by using movzbl here...
> + __##func (regs, (u8)error_code); \
And eliminating this cast. Totally worth it, right?
Powered by blists - more mailing lists