[llvm-dev] HWASAN support for RISCV

Anatoly Parshintsev via llvm-dev llvm-dev at lists.llvm.org
Mon Oct 19 23:09:25 PDT 2020


Hello there,


We want to publish the port of HWASAN implementation for RISCV to llvm. And
I'd like to understand the prerequisites for this functionality to be
adopted by llvm


The implementation is dependent on the J-extension
<https://github.com/riscv/riscv-j-extension> (aka "Pointer Masking") to be
available. At the present moment, the extension is not an official one, but
the core concepts which are relevant to llvm are not expected to be
changed. Currently, we are pushing the implementation of this extension to
qemu. There is a set of patches on review
<https://lists.nongnu.org/archive/html/qemu-riscv/2020-10/msg00173.html>.


We already have an initial prototype of the HWASAN port for RISC-V based on
this extension. And we'd like to push it to llvm mainline. I'd like to
understand the prerequisites of such functionality to be adopted.


1. Is the availability of J-extension in qemu enough?

2. As is - the extension can be used in bare-metal applications right away.
However, Linux may require some patches: for example, implementation of
syscalls to enable Pointer Masking for the calling process (by the way - we
have the initial implementation for that too).


Could someone advise if we can begin to roll-out the relevant patches for
such an experimental functionality? Or should we wait for, say, an
"official" Linux support?


Any suggestions and recommendations are very welcome.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201020/37263268/attachment.html>


More information about the llvm-dev mailing list