Valtaxi Plugin for Valgrind

   by Vince Weaver
      vince _at_ csl.cornell.edu
      

Background
~~~~~~~~~~

This plugin was designed when we were desperately trying to find
a usable x86 cycle-accurate simulator for our SimSnap checkpointing work.

We found TAXI which is a version of simple-scalar that was hacked to
take an instruction trace and memory trace generated by the BOCHS simulator.
This instruction trace was then converted to PISA ops (under the idea
they are similar to x86 uops) and then run through simple-scalar.

You can read more about TAXI here http://www.vlaovic.com/

What this valgrind plugin does is simply generate the memory and cpu
traces in a way compatible to the original BOCHS output.

In the end, the paper we used this plugin for was rejected
 (for reasons having nothing to do with valgrind or taxi)


How to Use
~~~~~~~~~~

  Command line options: 
  
        --tracecpu=<file> file for cpu trace file
	--tracemem=<file> file for mem trace file
	--fastforward=<val> number of insns(*100 000 000) to ffwd
        --countmagic=<val> ffwd until see the magic insn <val> times
	
  The fastforward option was useful if you were running simpoints.
  
  The magic nop that is used to count to find simpoints more accurately
  is mov %ecx,%ecx
  
  
Compiling
~~~~~~~~~

First download the newest version of valgrind from www.valgrind.org.
   Version 3.2.0 is the newest version tested
   
Unpack, and configure with:
    ./configure --prefix=/fusion/scratch2/vince/valgrind/
That installs it in your own subdirectory, as not to interfere with the
system-wide valgrind install.

Compile with:
    make
   
and then 
    make install
    
Copy this cachetool directory into place.

* Edit the file "configure".  Search for the string none/docs/Makefile
    and immediately after it put: valtaxi/Makefile

* go into the cachetool director and run make; make install

# leftover.. what was this for?
# cd .. && /bin/sh ./config.status cachetool/Makefile depfiles
