How about state of SVA

How about state of SVA (Secure Virutal Archtecture)? It seems there is no
any demo or prototype produced.

Cheers,

Liu Jian

Liu Jian wrote:

How about state of SVA (Secure Virutal Archtecture)? It seems there is no
any demo or prototype produced.

The memory safety compiler upon which SVA is based (the SAFECode compiler) is now publicly available. Please see http://safecode.cs.illinois.edu for information and directions on downloading it. Questions about the code can be asked on the SVA Developer's mailing list (svadev@cs.illinois.edu).

The SAFECode compiler currently has initial support for the upcoming LLVM 2.7 release (on mainline SVN) and LLVM 2.6 (in the release_26 branch). The transforms used for user-space and kernel code are very similar, so if you want to look at the code, it's there.

The SVA specific code that we used for the SVA publications is also available. Use the see branch (https://llvm.org/svn/llvm-project/safecode/branches/see) to get that code. This code is very old and only works with LLVM 1.9. The branch includes the LLVM transforms used for memory safety (which are just modifications of the SAFECode passes) plus the runtime library used to implement load/store checks, array indexing checks, and alignment checks. I think it may even contain the code for the safety checks on the SVA-OS instructions (as described in our Usenix Security 2009 paper).

There are two components that have not been publicly released yet:

1) The Execution Engine. This is the run-time library that implements the additional "instructions" we added to LLVM to support the Linux kernel itself (like sva_swap_integer, sva_load_io, sva_compare_and_swap, etc.).

2) The port of the Linux 2.4 kernel to SVA. This is the Linux source code with modifications to use the SVA instructions instead of inline assembly code.

We have, in the past, given the above SVA components to people doing research. If you need it for a research project, please let me know; I can talk to my advisor and see if we can give you a copy.

-- John T.