[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 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?

> --- /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 \@.

> +        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?

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.