[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v8 01/17] x86: Support compiling with indirect branch thunks
>>> On 15.01.18 at 11:40, <andrew.cooper3@xxxxxxxxxx> wrote: > On 15/01/18 10:14, Jan Beulich wrote: >>>>> On 12.01.18 at 19:00, <andrew.cooper3@xxxxxxxxxx> wrote: >>> --- a/xen/arch/x86/Rules.mk >>> +++ b/xen/arch/x86/Rules.mk >>> @@ -30,3 +30,10 @@ CFLAGS += -fno-asynchronous-unwind-tables >>> ifneq ($(call cc-option,$(CC),-fvisibility=hidden,n),n) >>> CFLAGS += -DGCC_HAS_VISIBILITY_ATTRIBUTE >>> endif >>> + >>> +# Compile with thunk-extern, indirect-branch-register if avaiable. >>> +ifneq ($(call cc-option,$(CC),-mindirect-branch-register,n),n) >>> +CFLAGS += -mindirect-branch=thunk-extern -mindirect-branch-register >>> +CFLAGS += -DCONFIG_INDIRECT_THUNK >>> +export CONFIG_INDIRECT_THUNK=y >>> +endif >> Still not a proper config option? > > No, for backportability. > > I'm preparing a post-SP2 series with some cleanup for staging. > >> >>> --- /dev/null >>> +++ b/xen/arch/x86/indirect-thunk.S >>> @@ -0,0 +1,38 @@ >>> +/* >>> + * Implement __x86_indirect_thunk_* symbols for use with compatbile > compilers >>> + * and the -mindirect-branch=thunk-extern -mindirect-branch-register > options. >>> + * >>> + * Copyright (c) 2017-2018 Citrix Systems Ltd. >>> + * >>> + * This source code is licensed under the GNU General Public License, >>> + * Version 2. See the file COPYING for more details. >>> + */ >>> + .file __FILE__ >>> + >>> +#include <asm/asm_defns.h> >>> + >>> +.macro IND_THUNK_RETPOLINE reg:req >>> + call 2f >>> +1: >>> + lfence >>> + jmp 1b >>> +2: >> As noted in a couple of other places, I'd prefer if numeric labels >> weren't used in macros (and especially new ones), in favor of >> .L ones utilizing \@. > > For macros in header files, I can see this rational. > > However, this is a local macro which only gets expanded in this file, > and isn't likely to move elsewhere. I don't see the value in reducing > the readability. > >> >>> + mov %\reg, (%rsp) >>> + ret >>> +.endm >>> + >>> +/* >>> + * Build the __x86_indirect_thunk_* symbols. Currently implement the >>> + * retpoline thunk only. >>> + */ >>> +.macro GEN_INDIRECT_THUNK reg:req >>> + .section .text.__x86_indirect_thunk_\reg, "ax", @progbits >>> + >>> +ENTRY(__x86_indirect_thunk_\reg) >>> + IND_THUNK_RETPOLINE \reg >>> +.endm >> Still unnecessary leading underscores in the section name? > > Having the section names different to the symbols in them is far worse > than using double underscores. Well, okay then: Acked-by: Jan Beulich <jbeulich@xxxxxxxx> Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |