[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CABCJKuee-6GGDDjvByCkikR02gka2BNhwRVBw6UAwEcmSQposQ@mail.gmail.com>
Date: Thu, 11 Apr 2024 17:15:17 +0000
From: Sami Tolvanen <samitolvanen@...gle.com>
To: Deepak Gupta <debug@...osinc.com>
Cc: linux-riscv@...ts.infradead.org, linux-kernel@...r.kernel.org,
llvm@...ts.linux.dev, paul.walmsley@...ive.com, palmer@...belt.com,
aou@...s.berkeley.edu, nathan@...nel.org, ndesaulniers@...gle.com,
morbo@...gle.com, justinstitt@...gle.com, andy.chiu@...ive.com,
hankuan.chen@...ive.com, guoren@...nel.org, greentime.hu@...ive.com,
cleger@...osinc.com, apatel@...tanamicro.com, ajones@...tanamicro.com,
conor.dooley@...rochip.com, mchitale@...tanamicro.com,
dbarboza@...tanamicro.com, waylingii@...il.com, sameo@...osinc.com,
alexghiti@...osinc.com, akpm@...ux-foundation.org, shikemeng@...weicloud.com,
rppt@...nel.org, charlie@...osinc.com, xiao.w.wang@...el.com,
willy@...radead.org, jszhang@...nel.org, leobras@...hat.com,
songshuaishuai@...ylab.org, haxel@....de, samuel.holland@...ive.com,
namcaov@...il.com, bjorn@...osinc.com, cuiyunhui@...edance.com,
wangkefeng.wang@...wei.com, falcon@...ylab.org, viro@...iv.linux.org.uk,
bhe@...hat.com, chenjiahao16@...wei.com, hca@...ux.ibm.com, arnd@...db.de,
kent.overstreet@...ux.dev, boqun.feng@...il.com, oleg@...hat.com,
paulmck@...nel.org, broonie@...nel.org, rick.p.edgecombe@...el.com
Subject: Re: [RFC PATCH 02/12] riscv: add landing pad for asm routines.
On Tue, Apr 9, 2024 at 6:12 AM Deepak Gupta <debug@...osinc.com> wrote:
>
> SYM_* macros are used to define assembly routines. In this patch series,
> re-define those macros in risc-v arch specific include file to include
> a landing pad instruction at the beginning. This is done only when the
> compiler flag for landing pad is enabled (i.e. __riscv_zicfilp).
>
> Signed-off-by: Deepak Gupta <debug@...osinc.com>
> ---
> arch/riscv/include/asm/linkage.h | 42 ++++++++++++++++++++++++++++++++
> 1 file changed, 42 insertions(+)
>
> diff --git a/arch/riscv/include/asm/linkage.h b/arch/riscv/include/asm/linkage.h
> index 9e88ba23cd2b..bb43ae7dadeb 100644
> --- a/arch/riscv/include/asm/linkage.h
> +++ b/arch/riscv/include/asm/linkage.h
> @@ -6,7 +6,49 @@
> #ifndef _ASM_RISCV_LINKAGE_H
> #define _ASM_RISCV_LINKAGE_H
>
> +#ifdef __ASSEMBLY__
> +#include <asm/assembler.h>
> +#endif
> +
> #define __ALIGN .balign 4
> #define __ALIGN_STR ".balign 4"
>
> +#ifdef __riscv_zicfilp
> +/*
> + * A landing pad instruction is needed at start of asm routines
> + * re-define macros for asm routines to have a landing pad at
> + * the beginning of function. Currently use label value of 0x1.
> + * Eventually, label should be calculated as a hash over function
> + * signature.
> + */
I haven't seen the compiler implementation for fine-grained Zicfilp
yet, but in the kernel at least, this would ideally reuse as much of
the KCFI plumbing as possible. For example, since only C code has type
information, we left the type hash computation for the compiler, which
allows assembly functions to just reference the appropriate
__kcfi_typeid_* symbol.
Sami
Powered by blists - more mailing lists