Re: [tip:x86/pti] x86/entry: Reduce the code footprint of the 'idtentry' macro

From: Dominik Brodowski
Date: Sat Feb 17 2018 - 07:29:07 EST


On Sat, Feb 17, 2018 at 03:40:13AM -0800, tip-bot for Dominik Brodowski wrote:
> Commit-ID: 9e809d15d6b692fa061d74be7aaab1c79f6784b8
> Gitweb: https://git.kernel.org/tip/9e809d15d6b692fa061d74be7aaab1c79f6784b8
> Author: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx>
> AuthorDate: Wed, 14 Feb 2018 18:59:23 +0100
> Committer: Ingo Molnar <mingo@xxxxxxxxxx>
> CommitDate: Sat, 17 Feb 2018 11:14:33 +0100
>
> x86/entry: Reduce the code footprint of the 'idtentry' macro
>
> Play a little trick in the generic PUSH_AND_CLEAR_REGS macro
> to insert the GP registers "above" the original return address.
>
> This allows us to (re-)insert the macro in error_entry() and
> paranoid_entry() and to remove it from the idtentry macro. This
> reduces the static footprint significantly:
>
> text data bss dec hex filename
> 24307 0 0 24307 5ef3 entry_64.o-orig
> 20987 0 0 20987 51fb entry_64.o
>
> Co-developed-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx>
> Cc: Andy Lutomirski <luto@xxxxxxxxxx>
> Cc: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
> Cc: Borislav Petkov <bp@xxxxxxxxx>
> Cc: Dan Williams <dan.j.williams@xxxxxxxxx>
> Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
> Cc: David Woodhouse <dwmw2@xxxxxxxxxxxxx>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Cc: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
> Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Link: http://lkml.kernel.org/r/20180214175924.23065-2-linux@xxxxxxxxxxxxxxxxxxxx
> [ Small tweaks to comments. ]
> Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>

Thanks! Just a minor thing:

> - * Switch gs if needed.
> + * Save all registers in pt_regs, and switch gs if needed.

...

> - * Switch gs if needed.
> + * Save all registers in pt_regs, and switch GS if needed.

If we switch from gs to GS, we should do it in both places.

Thanks!

Dominik