[xen staging] retpoline: disable jump tables

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[xen staging] retpoline: disable jump tables

patchbot
commit 2276da0db9b0f111e1a8f41dd707c6bd1dea9a7d
Author:     Norbert Manthey <[hidden email]>
AuthorDate: Wed Nov 21 10:52:05 2018 +0100
Commit:     Jan Beulich <[hidden email]>
CommitDate: Wed Nov 21 10:52:05 2018 +0100

    retpoline: disable jump tables
   
    To mitigate Spectre v2, Xen has been fixed with a software fix, namely
    using retpoline sequences generated by the compiler. This way, indirect
    branches are protected against the attack.
   
    However, the retpoline sequence comes with a slow down. To make up for
    this, we propose to avoid jump tables in the first place. Without the
    retpoline sequences, this code would be less efficient. However, when
    retpoline is enabled, this actually results in a slight performance
    improvement.
   
    This change might become irrelevant once the compiler starts avoiding
    jump tables in case retpolines are used:
    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86952
   
    Reported-by: Julian Stecklina <[hidden email]>
    Reported-by: Pawel Wieczorkiewicz <[hidden email]>
    Signed-off-by: Norbert Manthey <[hidden email]>
    Acked-by: Jan Beulich <[hidden email]>
---
 xen/arch/x86/Rules.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/Rules.mk b/xen/arch/x86/Rules.mk
index cc301cdc5b..3f2687bbe4 100644
--- a/xen/arch/x86/Rules.mk
+++ b/xen/arch/x86/Rules.mk
@@ -48,6 +48,7 @@ endif
 ifneq ($(call cc-option,$(CC),-mindirect-branch-register,n),n)
 CFLAGS += -mindirect-branch=thunk-extern -mindirect-branch-register
 CFLAGS += -DCONFIG_INDIRECT_THUNK
+CFLAGS += -fno-jump-tables
 export CONFIG_INDIRECT_THUNK=y
 endif
 
--
generated by git-patchbot for /home/xen/git/xen.git#staging

_______________________________________________
Xen-changelog mailing list
[hidden email]
https://lists.xenproject.org/xen-changelog