forked from Xuhpclab/DrCCTProf
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
101 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -31,6 +31,7 @@ paste output here | |
|
||
**Information on your system:** | ||
|
||
- CPU Info: [eg. arch@aarch64 model_name@ThunderX2_99xx] | ||
- System Version: [e.g. Ubuntu14.04] | ||
- Depand Package Version: [e.g. [email protected], [email protected], [email protected], [email protected]] | ||
- Application Version: [[email protected]] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
--- | ||
name: Build error | ||
about: Show an error case of build DrCCTProf | ||
about: Report an error case of building DrCCTProf | ||
title: "Build error: " | ||
labels: "build-error" | ||
--- | ||
|
@@ -21,6 +21,7 @@ paste output here | |
|
||
**Information on your system:** | ||
|
||
- CPU Info: [eg. arch@aarch64 model_name@ThunderX2_99xx] | ||
- System Version: [e.g. Ubuntu14.04] | ||
- Depand Package Version: [e.g. [email protected], [email protected], [email protected], [email protected]] | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,110 @@ | ||
# DrCCTProf | ||
|
||
## Instructions for building DrCCTProf | ||
DrCCTProf is a fine-grained call path profiling framework for binaries running on ARM and X86 architectures. Please see our [blog](http://www.cs.wm.edu/~xl10/blog/drcctprof.html) for more details. | ||
|
||
## Installation | ||
|
||
### Linux | ||
|
||
To build DrCCTProf on Linux, use the following commands as a guide. This builds 64-bit DrCCTProf in release mode: | ||
#### Install Dependencies | ||
|
||
``` | ||
# Install dependencies for Ubuntu 15+. Adjust this command as appropriate for | ||
# other distributions (in particular, use "cmake3" for Ubuntu Trusty). | ||
$ sudo apt-get install cmake g++ g++-multilib doxygen transfig imagemagick ghostscript git zlib1g-dev | ||
# Get sources. | ||
In order to build you'll need the following packages: | ||
|
||
* gcc (at least version 4.8) | ||
* binutils (at least version 2.26) | ||
* [cmake](https://cmake.org/download/) (at least version 3.7) | ||
* perl | ||
|
||
To avoid conflicts with installed original version packages, we recommend that use [Spack](https://spack.io/) to manage the above packages and create a virtual environment to build and run DrCCTProf. | ||
|
||
#### Build | ||
|
||
Use the following commands to get sources and build DrCCTProf: | ||
|
||
```console | ||
$ git clone --recurse https://github.com/Xuhpclab/DrCCTProf.git | ||
# Then, simply type "sh build.sh" This will configure, make, and check DrCCTProf. | ||
``` | ||
```console | ||
$ ./build.sh | ||
``` | ||
|
||
### Android | ||
|
||
Working in process... | ||
|
||
## Usage | ||
|
||
### Linux | ||
|
||
To run DrCCTProf, one needs to issue the following command: | ||
|
||
#### Set the global environment variable | ||
|
||
```console | ||
$ export drrun=/path/to/DrCCTProf/build/bin64/drrun | ||
``` | ||
# drrun -t client -- application | ||
|
||
|
||
#### Run client tool | ||
|
||
* **x86_64** | ||
|
||
```console | ||
$ /path/to/DrCCTProf/build/bin64/drrun -t <client tool> -- <application> [apllication args] | ||
``` | ||
|
||
drrun is installed at DrCCTProf/build/bin64 and clients are installed in DrCCTProf/build. The source code of clients based on DrCCTProf can be found in DrCCTProf/src/clients. | ||
* **aarch64** | ||
|
||
```console | ||
$ DrCCTProf/build/bin64/drrun -unsafe_build_ldstex -t <client tool> -- <application> [apllication args] | ||
``` | ||
|
||
## Client tools | ||
|
||
### Internal client tools list | ||
|
||
| Name | Features | Status | | ||
|--------------------------------------|-----------------------------------------------------------------------------|---------| | ||
| drcctlib_cct_only_clean_call | A tool that collects call path on each instruction. | release | | ||
| drcctlib_instr_statistics_clean_call | A instruction counting tool that counts each instruction. | release | | ||
| drcctlib_reuse_distance_client_cache | A reuse distance measurement tool. | release | | ||
| drcctlib_cct_only | (Code cache mode)A tool that collects call path on each instruction. | beta | | ||
| drcctlib_instr_statistics | (Code cache mode) A instruction counting tool that counts each instruction. | beta | | ||
| drcctlib_reuse_distance | (Code cache mode) A reuse distance measurement tool. | beta | | ||
|
||
### How to build your own custom tools? | ||
|
||
See [documentation](doc/build_custom_client_tool.md) for details. | ||
|
||
## Support Platforms | ||
|
||
The following platforms have passed our tests. | ||
|
||
### Linux | ||
|
||
| CPU | Systems | Architecture | | ||
|-----------------------------------|-----------------|--------------| | ||
| Intel(R) Xeon(R) CPU E5-2699 v3 | Ubuntu 18.04 | x86_64 | | ||
| Intel(R) Xeon(R) CPU E5-2650 v4 | Ubuntu 14.04 | x86_64 | | ||
| Intel(R) Xeon(R) CPU E7-4830 v4 | Red Hat 4.8.3 | x86_64 | | ||
| Arm Cortex A53(Raspberry pi 3 b+) | Ubuntu 18.04 | aarch64 | | ||
| Arm Cortex-A57(Jetson Nano) | Ubuntu 18.04 | aarch64 | | ||
| ThunderX2 99xx | Ubuntu 20.04 | aarch64 | | ||
| AWS Graviton1 | Ubuntu 18.04 | aarch64 | | ||
| AWS Graviton2 | Ubuntu 18.04 | aarch64 | | ||
|
||
## Obtaining Help | ||
|
||
### Report an error case of building | ||
|
||
Please use the [build error report](https://github.com/Xuhpclab/DrCCTProf/issues/new?labels=build-error&template=build_error.md&title=Build+error). | ||
|
||
DrCCTProf is built atop [DynamoRIO](https://github.com/DynamoRIO/dynamorio). If you get errors in building, you can also search the [DynamoRIO's issues](https://github.com/DynamoRIO/dynamorio/issues) to get help. | ||
|
||
### Report a bug | ||
|
||
Please use the [bug report](https://github.com/Xuhpclab/DrCCTProf/issues/new?labels=bug-report&template=bug_report.md&title=Bug+report). | ||
|
||
## License | ||
|
||
DrCCTProf is released under the [MIT License](http://www.opensource.org/licenses/MIT). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# How to build your own custom tools? | ||
|
||
coming soon |