Skip to content
  • Peter Zijlstra's avatar
    9ae1e990
    perf tools: Remove broken __no_tail_call attribute · 9ae1e990
    Peter Zijlstra authored
    
    
    The GCC specific __attribute__((optimize)) attribute does not what is
    commonly expected and is explicitly recommended against using in
    production code by the GCC people.
    
    Unlike what is often expected, it doesn't add to the optimization flags,
    but it fully replaces them, loosing any and all optimization flags
    provided by the compiler commandline.
    
    The only guaranteed upon means of inhibiting tail-calls is by placing a
    volatile asm with side-effects after the call such that the tail-call simply
    cannot be done.
    
    Given the original commit wasn't specific on which calls were the problem, this
    removal might re-introduce the problem, which can then be re-analyzed and cured
    properly.
    
    Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Acked-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Acked-by: default avatarMiguel Ojeda <ojeda@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Arvind Sankar <nivedita@alum.mit.edu>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Geert Uytterhoeven <geert@linux-m68k.org>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Kees Kook <keescook@chromium.org>
    Cc: Martin Liška <mliska@suse.cz>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lore.kernel.org/lkml/20201028081123.GT2628@hirez.programming.kicks-ass.net
    
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    9ae1e990
    perf tools: Remove broken __no_tail_call attribute
    Peter Zijlstra authored
    
    
    The GCC specific __attribute__((optimize)) attribute does not what is
    commonly expected and is explicitly recommended against using in
    production code by the GCC people.
    
    Unlike what is often expected, it doesn't add to the optimization flags,
    but it fully replaces them, loosing any and all optimization flags
    provided by the compiler commandline.
    
    The only guaranteed upon means of inhibiting tail-calls is by placing a
    volatile asm with side-effects after the call such that the tail-call simply
    cannot be done.
    
    Given the original commit wasn't specific on which calls were the problem, this
    removal might re-introduce the problem, which can then be re-analyzed and cured
    properly.
    
    Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Acked-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Acked-by: default avatarMiguel Ojeda <ojeda@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Arvind Sankar <nivedita@alum.mit.edu>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Geert Uytterhoeven <geert@linux-m68k.org>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Kees Kook <keescook@chromium.org>
    Cc: Martin Liška <mliska@suse.cz>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lore.kernel.org/lkml/20201028081123.GT2628@hirez.programming.kicks-ass.net
    
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Loading