[LLVMdev] How about state of SVA

John Criswell criswell at uiuc.edu
Tue Apr 20 07:02:05 PDT 2010

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 at 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, 

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.

> Cheers,
>   Liu Jian
> ----
> email to: gjk.liu at gmail.com <mailto:gjk.liu at gmail.com>

More information about the llvm-dev mailing list