All of lore.kernel.org
 help / color / mirror / Atom feed
From: Deepak Gupta <debug@rivosinc.com>
To: Joel Stanley <joel@jms.id.au>
Cc: Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Conor Dooley <conor@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	Peter Zijlstra <peterz@infradead.org>,
	Kees Cook <kees@kernel.org>,
	linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org,
	linux-kselftest@vger.kernel.org, alistair.francis@wdc.com,
	richard.henderson@linaro.org, jim.shu@sifive.com,
	andybnac@gmail.com, kito.cheng@sifive.com, charlie@rivosinc.com,
	atishp@rivosinc.com, evan@rivosinc.com, cleger@rivosinc.com,
	alexghiti@rivosinc.com, Michael Ellerman <mpe@tenstorrent.com>
Subject: Re: [PATCH v22 28/28] kselftest/riscv: kselftest for user mode cfi
Date: Wed, 5 Nov 2025 13:44:32 -0800	[thread overview]
Message-ID: <aQvFQM38u0iwSlJ8@debug.ba.rivosinc.com> (raw)
In-Reply-To: <CACPK8Xcm2SeSStk2EBEcUoyiUc0=d6ce_MfnP=ce3z6MMXyuiw@mail.gmail.com>

On Tue, Nov 04, 2025 at 05:42:04PM +1030, Joel Stanley wrote:
>On Fri, 24 Oct 2025 at 03:33, Deepak Gupta via B4 Relay
><devnull+debug.rivosinc.com@kernel.org> wrote:
>
>> diff --git a/tools/testing/selftests/riscv/cfi/Makefile b/tools/testing/selftests/riscv/cfi/Makefile
>> new file mode 100644
>> index 000000000000..55165a93845f
>> --- /dev/null
>> +++ b/tools/testing/selftests/riscv/cfi/Makefile
>> @@ -0,0 +1,16 @@
>> +CFLAGS += -I$(top_srcdir)/tools/include
>> +
>> +CFLAGS += -march=rv64gc_zicfilp_zicfiss -fcf-protection=full
>> +
>> +ifeq ($(shell $(CC) $(CFLAGS) -nostdlib -xc /dev/null -o /dev/null > /dev/null 2>&1; echo $$?),0)
>> +TEST_GEN_PROGS := cfitests|
>
>I hacked this up a bit to get it working for me.
>
>I added this at the top to use the local headers from a `make
>headers`. Without this the selftest lacked the required ptrace
>changes:
>
>+CFLAGS += $(KHDR_INCLUDES)

hmm weird. In my case it picks it from location where headers get placed as part
of build (or make headers_install). I wonder why it's not happening in your
case. In any case, I think this can be added.

>
>I needed this before the ifeq so it used the cross compiler to perform
>the test, otherwise the test was always false:
>
>+# Check for zicfli* extensions needs cross compiler
>+# which is not set until lib.mk is included
>+ifeq ($(LLVM)$(CC),cc)
>+CC := $(CROSS_COMPILE)gcc
>+endif
>+#nedif
>
>Findally, a cosmetic one. If we set the name of the main test file to
>be the same as the test, the rule from lib.mk will give us neat
>output:

Sure, make sense. Will do that.
>
>     make[2]: Entering directory 'tools/testing/selftests/riscv/cfi'
>       CC       cfitests
>
>--- a/tools/testing/selftests/riscv/cfi/Makefile
>+++ b/tools/testing/selftests/riscv/cfi/Makefile
>@@ -12,12 +12,11 @@ endif
> ifeq ($(shell $(CC) $(CFLAGS) -nostdlib -xc /dev/null -o /dev/null >
>/dev/null 2>&1; echo $$?),0)
> TEST_GEN_PROGS := cfitests
>
>-include ../../lib.mk
>+$(OUTPUT)/cfitests: cfitests.c shadowstack.c
>
>-$(OUTPUT)/cfitests: riscv_cfi_test.c shadowstack.c
>-       $(CC) -o$@ $(CFLAGS) $(LDFLAGS) $^
> else
>-include ../../lib.mk
>
> $(shell echo "Toolchain doesn't support CFI, skipping CFI kselftest." >&2)
> endif
>+
>+include ../../lib.mk
>
>I can push up a branch with my changes if you'd like.

Sure, please point me to that and I'll pick it up. Test locally and send it out.


WARNING: multiple messages have this Message-ID (diff)
From: Deepak Gupta <debug@rivosinc.com>
To: Joel Stanley <joel@jms.id.au>
Cc: Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Conor Dooley <conor@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	Peter Zijlstra <peterz@infradead.org>,
	Kees Cook <kees@kernel.org>,
	linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org,
	linux-kselftest@vger.kernel.org, alistair.francis@wdc.com,
	richard.henderson@linaro.org, jim.shu@sifive.com,
	andybnac@gmail.com, kito.cheng@sifive.com, charlie@rivosinc.com,
	atishp@rivosinc.com, evan@rivosinc.com, cleger@rivosinc.com,
	alexghiti@rivosinc.com, Michael Ellerman <mpe@tenstorrent.com>
Subject: Re: [PATCH v22 28/28] kselftest/riscv: kselftest for user mode cfi
Date: Wed, 5 Nov 2025 13:44:32 -0800	[thread overview]
Message-ID: <aQvFQM38u0iwSlJ8@debug.ba.rivosinc.com> (raw)
In-Reply-To: <CACPK8Xcm2SeSStk2EBEcUoyiUc0=d6ce_MfnP=ce3z6MMXyuiw@mail.gmail.com>

On Tue, Nov 04, 2025 at 05:42:04PM +1030, Joel Stanley wrote:
>On Fri, 24 Oct 2025 at 03:33, Deepak Gupta via B4 Relay
><devnull+debug.rivosinc.com@kernel.org> wrote:
>
>> diff --git a/tools/testing/selftests/riscv/cfi/Makefile b/tools/testing/selftests/riscv/cfi/Makefile
>> new file mode 100644
>> index 000000000000..55165a93845f
>> --- /dev/null
>> +++ b/tools/testing/selftests/riscv/cfi/Makefile
>> @@ -0,0 +1,16 @@
>> +CFLAGS += -I$(top_srcdir)/tools/include
>> +
>> +CFLAGS += -march=rv64gc_zicfilp_zicfiss -fcf-protection=full
>> +
>> +ifeq ($(shell $(CC) $(CFLAGS) -nostdlib -xc /dev/null -o /dev/null > /dev/null 2>&1; echo $$?),0)
>> +TEST_GEN_PROGS := cfitests|
>
>I hacked this up a bit to get it working for me.
>
>I added this at the top to use the local headers from a `make
>headers`. Without this the selftest lacked the required ptrace
>changes:
>
>+CFLAGS += $(KHDR_INCLUDES)

hmm weird. In my case it picks it from location where headers get placed as part
of build (or make headers_install). I wonder why it's not happening in your
case. In any case, I think this can be added.

>
>I needed this before the ifeq so it used the cross compiler to perform
>the test, otherwise the test was always false:
>
>+# Check for zicfli* extensions needs cross compiler
>+# which is not set until lib.mk is included
>+ifeq ($(LLVM)$(CC),cc)
>+CC := $(CROSS_COMPILE)gcc
>+endif
>+#nedif
>
>Findally, a cosmetic one. If we set the name of the main test file to
>be the same as the test, the rule from lib.mk will give us neat
>output:

Sure, make sense. Will do that.
>
>     make[2]: Entering directory 'tools/testing/selftests/riscv/cfi'
>       CC       cfitests
>
>--- a/tools/testing/selftests/riscv/cfi/Makefile
>+++ b/tools/testing/selftests/riscv/cfi/Makefile
>@@ -12,12 +12,11 @@ endif
> ifeq ($(shell $(CC) $(CFLAGS) -nostdlib -xc /dev/null -o /dev/null >
>/dev/null 2>&1; echo $$?),0)
> TEST_GEN_PROGS := cfitests
>
>-include ../../lib.mk
>+$(OUTPUT)/cfitests: cfitests.c shadowstack.c
>
>-$(OUTPUT)/cfitests: riscv_cfi_test.c shadowstack.c
>-       $(CC) -o$@ $(CFLAGS) $(LDFLAGS) $^
> else
>-include ../../lib.mk
>
> $(shell echo "Toolchain doesn't support CFI, skipping CFI kselftest." >&2)
> endif
>+
>+include ../../lib.mk
>
>I can push up a branch with my changes if you'd like.

Sure, please point me to that and I'll pick it up. Test locally and send it out.


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2025-11-05 21:44 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-23 16:51 [PATCH v22 00/28] riscv control-flow integrity for usermode Deepak Gupta
2025-10-23 16:51 ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 01/28] mm: VM_SHADOW_STACK definition for riscv Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 02/28] dt-bindings: riscv: zicfilp and zicfiss in dt-bindings (extensions.yaml) Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 03/28] riscv: zicfiss / zicfilp enumeration Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 04/28] riscv: zicfiss / zicfilp extension csr and bit definitions Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 05/28] riscv: usercfi state for task and save/restore of CSR_SSP on trap entry/exit Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 06/28] riscv/mm : ensure PROT_WRITE leads to VM_READ | VM_WRITE Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 07/28] riscv/mm: manufacture shadow stack pte Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 08/28] riscv/mm: teach pte_mkwrite to manufacture shadow stack PTEs Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 09/28] riscv/mm: write protect and shadow stack Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 10/28] riscv/mm: Implement map_shadow_stack() syscall Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-31 19:48   ` Paul Walmsley
2025-10-31 19:48     ` Paul Walmsley
2025-11-02 23:51     ` Maciej W. Rozycki
2025-11-02 23:51       ` Maciej W. Rozycki
2025-10-23 16:51 ` [PATCH v22 11/28] riscv/shstk: If needed allocate a new shadow stack on clone Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 12/28] riscv: Implements arch agnostic shadow stack prctls Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 13/28] prctl: arch-agnostic prctl for indirect branch tracking Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 14/28] riscv: Implements arch agnostic indirect branch tracking prctls Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 15/28] riscv/traps: Introduce software check exception and uprobe handling Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 16/28] riscv: signal: abstract header saving for setup_sigcontext Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 17/28] riscv/signal: save and restore of shadow stack for signal Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-31 20:07   ` Paul Walmsley
2025-10-31 20:07     ` Paul Walmsley
2025-10-31 22:10     ` Randy Dunlap
2025-10-31 22:10       ` Randy Dunlap
2025-11-04  7:52       ` Paul Walmsley
2025-11-04  7:52         ` Paul Walmsley
2025-10-23 16:51 ` [PATCH v22 18/28] riscv/kernel: update __show_regs to print shadow stack register Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 19/28] riscv/ptrace: riscv cfi status and state via ptrace and in core files Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 20/28] riscv/hwprobe: zicfilp / zicfiss enumeration in hwprobe Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 21/28] riscv: kernel command line option to opt out of user cfi Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 22/28] riscv: enable kernel access to shadow stack memory via FWFT sbi call Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 23/28] arch/riscv: compile vdso with landing pad and shadow stack note Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 24/28] arch/riscv: dual vdso creation logic and select vdso based on hw Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 25/28] riscv: create a config for shadow stack and landing pad instr support Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-11-11  5:58   ` Zong Li
2025-11-11  5:58     ` Zong Li
2025-11-11 18:22     ` Deepak Gupta
2025-11-11 18:22       ` Deepak Gupta
2025-11-12  2:19       ` Zong Li
2025-11-12  2:19         ` Zong Li
2025-10-23 16:51 ` [PATCH v22 26/28] riscv: Documentation for landing pad / indirect branch tracking Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 27/28] riscv: Documentation for shadow stack on riscv Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51 ` [PATCH v22 28/28] kselftest/riscv: kselftest for user mode cfi Deepak Gupta
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-10-23 16:51   ` Deepak Gupta via B4 Relay
2025-11-04  7:12   ` Joel Stanley
2025-11-04  7:12     ` Joel Stanley
2025-11-05 21:44     ` Deepak Gupta [this message]
2025-11-05 21:44       ` Deepak Gupta
2025-10-23 23:20 ` [PATCH v22 00/28] riscv control-flow integrity for usermode Deepak Gupta
2025-10-23 23:20   ` Deepak Gupta
2025-11-04  7:04 ` Joel Stanley
2025-11-04  7:04   ` Joel Stanley
2025-11-04 21:17   ` Deepak Gupta
2025-11-04 21:17     ` Deepak Gupta
2025-11-05 20:24   ` Deepak Gupta
2025-11-05 20:24     ` Deepak Gupta
2025-11-05 21:16     ` Deepak Gupta
2025-11-05 21:16       ` Deepak Gupta
2025-11-06  1:41       ` Deepak Gupta
2025-11-06  1:41         ` Deepak Gupta

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aQvFQM38u0iwSlJ8@debug.ba.rivosinc.com \
    --to=debug@rivosinc.com \
    --cc=alexghiti@rivosinc.com \
    --cc=alistair.francis@wdc.com \
    --cc=andybnac@gmail.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=arnd@arndb.de \
    --cc=atishp@rivosinc.com \
    --cc=charlie@rivosinc.com \
    --cc=cleger@rivosinc.com \
    --cc=conor@kernel.org \
    --cc=evan@rivosinc.com \
    --cc=jim.shu@sifive.com \
    --cc=joel@jms.id.au \
    --cc=kees@kernel.org \
    --cc=kito.cheng@sifive.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=mpe@tenstorrent.com \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=peterz@infradead.org \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.