|
|
![]() |
| | OpenIMPACT | Current Status | Software Releases | FAQ | |
This page contains extra files that are needed to run OpenIMPACT binaries compiled to use control speculation. These are highest performance binaries that OpenIMPACT can produce, but require a specially patched kernel to work properly.
General speculation overview
OpenIMPACT currently operates with either no control speculation, or with general speculation. The general speculation model, in contrast to the recovery code model, handles page faults on speculative loads immediately. If a page fault occurs and the OS determines that the load's source was invalid, it will mark the load's destination register as NaT ("not a thing"). If the program attempts to use the contents of this register, it will cause a terminal exception and the kernel will kill the process.
For instance, IMPACT may schedule a speculative load that
dereferences a pointer, prior to the program testing to see if the
pointer is NULL. When this happens, the kernel needs to have code to
handle this case, so that it does not terminate the program without
cause. (Naturally, if the program realizes that the pointer was NULL
and does not attempt to use the data from the speculated load, it
should not be terminated.) Since our compiler does not yet generate
recovery code that would allow speculative load exceptions to be
handled in user space, the chatr -r command and the IMPACT
kernel patch are necessary in order to reliably use control
speculation.
| Kernel patch | |
| linux-2.4.20.tar.bz2 | Linux 2.4.20 tarball from kernel.org. |
| linux-2.4.20-ia64-021210.diff.gz | IA-64 patch for 2.4.20. This should be applied prior to applying the general speculation patch. |
| linux-2.4.20-impact.diff |
The general speculation patch for kernel 2.4.20. After applying
this patch, it is necessary to enable
CONFIG_IA64_NORECOV under "Kernel hacking" in the
build configuration.
|
| General Speculation Utilities | |
| gel-chatr-0.0.tgz |
The current Gelato version of HP's chatr command-line
utility. This is needed if you are compiling a program and linking
it against a library compiled using OpenIMPACT with control
speculation. After producing a binary, you must run chatr -r
binary to tell the kernel that the executable does
not contain recovery code. If this is not performed, your program
may fail intermittently with "Illegal instruction" errors. This
tarball contains the source, a Makefile, and a statically linked
binary.
|