I ran into a problem when running DSA on Linux kernel (the Kernel
version I used is
2.4.31). The analysis was aborted when it tried to do
DSNode::mergeTypeInfo on some data structure in the kernel. I have
filed a bug report at http://llvm.org/bugs/show_bug.cgi?id=1656.
My question is what version of Linux kernel LLVM has been tested on
successfully? To run DSA analysis, should I use the latest version of
llvm and poolalloc or should I checkout a particular version?
Haifeng He wrote:
We use DSA on a modified version of Linux 2.4.22 (specifically, this is
a port of Linux to the SVA virtual architecture, which is described in
part in the papers listed at the end of this email). We use the SVA
branches of LLVM and poolalloc. These branches are derived from the
release_19 branches of these projects (which corresponds to LLVM 1.9).
I'm not sure, but I think Andrew may have ported the DSA changes from
the SVA branch to mainline and is using it on Linux 2.6, so mainline
LLVM and DSA might work as well.
The LLVA papers:
o LLVA: A Low-level Virtual Instruction Set Architecture:
o A Virtual Instruction Set Interface for Operating System Kernels:
o Secure Virtual Architecture: A Safe Execution Environment for
Commodity Operating Systems: To be presented at SOSP 2007
-- John T.
It is possible there was a fix in the branch we used for the kernel
that didn't make it into mainline. Also, mainline has deviated some
from lately, and those changes are not completed. The SVA branch
should be the latest fully tested version that completely matches the