-
Notifications
You must be signed in to change notification settings - Fork 1
flyree/pinfi-routine
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
HOW TO USE PINFI: 1. Installation - Make sure pin is installed. - Create a directory under <pin root>/source/tools, such as <pin root>/source/tools/pinfi - Copy the top-level directory (everything except the example/ subdirectory) to <pin root>/source/tools/pinfi - In the command line, type 'make' under <pin root>/source/tools/pinfi to compile the pinfi. - After compiling pinfi, a folder called obj-intel64 will be created under the project folder. 2. Usage - We provide a fault injection script located in example/, namely faultinject.py. There are several variables in the script need to be set based on your own configurations: - progbin: folder path to the benchmark under test - pinbin: path to the executable of pin - instcategorylib: path to instcategory.so which can be found under obj-intel64 folder. - instcountlib: path to instcount.so which can be found under obj-intel64 folder. - filib: path to faultinjection.so which can be found under obj-intel64 folder. - outputdir: std output generated by the benchmark under test. - errordir: error output generated by the benchmark under test. - basedir: golden output generated by the benchmark under test. - optionlist: configure parameters as desired based on the benchmark undertest. - Put the instructions category (default is 'all') that are desired to be fault injected in pin.instcategory.txt under the directory where faultinject.py locates, and run faultinject.py to inject faults in the specified locations. We provide an example of the pin.instcategory.txt file in example/ as well. For routine and FP injection: the options are: "fir": enbale routine fault injection (value e.g. 1) "fifp": enable fp fault injection (value e.g. 1) "rn": the name of the routine (value e.g. main) note: when you change this you need to make sure changing both instcount and faultinjection "firange_l": the highest bit you want to inject (value e.g. 63) "firange_r": the lowest bit you want to inject (value e.g. 0) So the injection command could look like this: ./pin-3.5-97503-gac534ca30-gcc-linux/pin -t .pin-3.5-97503-gac534ca30-gcc-linux/source/tools/pinfi/obj-intel64/faultinjection.so -fioption AllInst -fir 1 -rn CollectDomainNodesToElemNodes -fifp 1 -firl 32 -firr 1 -idx 5 -- ./lulesh 10
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published