-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #148 from Perfexionists/release-0.21.7
Release 0.21.7
- Loading branch information
Showing
12 changed files
with
361 additions
and
279 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
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
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,10 +1,19 @@ | ||
|
||
=============== | ||
Main Developers | ||
=============== | ||
|
||
The following lists the authors (active ones are bold) | ||
The following lists the authors (active ones are bold) that contributed to upstream (or to some fork) of Perun: | ||
|
||
* **Tomas Fiedor**: |github| `tfiedor <https://github.com/tfiedor>`_ |email| `[email protected] <mailto: [email protected]>`_ (founder), core | ||
* **Jiri Pavela**: |github| `JiriPavela <https://github.com/JiriPavela>`_ |email| `[email protected] <mailto: [email protected]>`_ tracer, core | ||
* **Ondrej Michal**: |github| `HarryMichal <https://github.com/HarryMichal>`_ [energy profiler](https://gitlab.com/martymichal/sysrapl) | ||
* **Peter Mocary**: |github| `PeterMocary <https://github.com/PeterMocary>`_ tracer | ||
* Martina Grzybowska: GUI | ||
* Vojtech Hajek: C# profiler | ||
* Matus Liscinsky: fuzzing, perfblowing | ||
* Radim Podola: |email| `[email protected] <mailto: [email protected]>`_ memory | ||
* Simon Stupinsky: |email| `[email protected] <mailto: [email protected]>`_ models | ||
|
||
* **Tomas Fiedor** <[email protected]> (founder) | ||
* **Jiri Pavela** <[email protected]> | ||
* Radim Podola <[email protected]> | ||
* **Simon Stupinsky** <[email protected]> | ||
.. |github| image:: ./figs/icon-github.svg | ||
.. |email| image:: ./figs/icon-email.svg |
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
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
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,108 @@ | ||
### Installing dependencies for tracer | ||
|
||
Perun supports multiple collectors of performance metrics. | ||
Our most advanced collector is Tracer (runnable by `perun collect trace`), | ||
which has additional dependencies. | ||
|
||
The standard Perun installation does not automatically install the instrumentation frameworks | ||
used by Tracer: SystemTap and eBPF. Installing these frameworks is optional when using Perun, | ||
although having at least one of them is required in order to run Tracer. Moreover, both frameworks | ||
rely on system-wide packages and thus should be installed directly by the user when needed. | ||
|
||
#### SystemTap (Ubuntu) | ||
|
||
In Ubuntu, SystemTap can be installed using `apt-get` package manager: | ||
|
||
sudo apt-get install systemtap | ||
|
||
Furthermore, kernel debug symbols package must be installed in order to use SystemTap. | ||
For Ubuntu 16.04 and higher run the following: | ||
|
||
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C8CAB6595FDFF622 | ||
codename=$(lsb_release -c | awk '{print $2}') | ||
sudo tee /etc/apt/sources.list.d/ddebs.list << EOF | ||
deb http://ddebs.ubuntu.com/ ${codename} main restricted universe multiverse | ||
deb http://ddebs.ubuntu.com/ ${codename}-security main restricted universe multiverse | ||
deb http://ddebs.ubuntu.com/ ${codename}-updates main restricted universe multiverse | ||
deb http://ddebs.ubuntu.com/ ${codename}-proposed main restricted universe multiverse | ||
EOF | ||
|
||
sudo apt-get update | ||
sudo apt-get install linux-image-$(uname -r)-dbgsym | ||
|
||
To test that SystemTap works correctly, you can run the following command: | ||
|
||
stap -v -e 'probe vfs.read {printf("read performed\n"); exit()}' | ||
|
||
For more information, see the [source](https://wiki.ubuntu.com/Kernel/Systemtap). | ||
|
||
#### SystemTap (Fedora) | ||
|
||
In Fedora, SystemTap can be installed using `yum` package manager: | ||
|
||
sudo yum install systemtap systemtap-runtime | ||
|
||
Similarly to the Ubuntu, additional kernel packages must be installed to run SystemTap properly: | ||
|
||
kernel-debuginfo | ||
kernel-debuginfo-common | ||
kernel-devel | ||
|
||
Different Fedora versions use different methods for obtaining those packages. Please refer to | ||
the [SystemTap setup guide](https://www.sourceware.org/systemtap/SystemTap_Beginners_Guide/using-systemtap.html#using-setup) | ||
|
||
#### BCC (Ubuntu) | ||
|
||
Tracer uses the [BCC (BPF Compiler Collection)](https://github.com/iovisor/bcc) frontend for the eBPF engine; | ||
eBPF is a framework that allows us to instrument the profile programs. | ||
We recommend to install the necessary packages from the IO Visor repository as follows: | ||
|
||
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4052245BD4284CDD | ||
echo "deb https://repo.iovisor.org/apt/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/iovisor.list | ||
sudo apt-get update | ||
sudo apt-get install bcc-tools libbcc-examples linux-headers-$(uname -r) | ||
|
||
The default BCC installation uses bindings for Python 2, however, Perun requires bindings for | ||
Python 3. To install them, run the following command: | ||
|
||
sudo apt-get install python3-bcc | ||
|
||
#### BCC (Fedora) | ||
|
||
Installing BCC on Fedora is much easier. Simply run: | ||
|
||
sudo dnf install bcc python3-bcc | ||
|
||
#### BCC (python virtualenv) | ||
|
||
Note that when using Perun in a Python virtual environment, the above installation instructions | ||
are not enough. Since the Python `bcc` package is not available through `pip`, installing it | ||
directly in a virtualenv using pip requirements list is not an option. A common workaround is | ||
to copy the system-wide python `bcc` package installed in the previous step (`python3-bcc`) | ||
into the virtualenv packages. | ||
|
||
To find the system python3 `bcc` package, run: | ||
|
||
python3 -c "import site; print(site.getsitepackages())" | ||
|
||
which shows the global site-packages paths (be warned that not all paths must necessarily exist). | ||
The package `bcc` should be located in at least one the listed path (otherwise the installation of | ||
`python3-bcc` must have failed in the previous step). The resulting path may look like e.g.: | ||
|
||
/usr/lib/python3/dist-packages | ||
|
||
Now activate the virtual environment and run the same command to get the list of site-packages paths | ||
local to the virtualenv and find one which does exists: | ||
|
||
<prefix>/venv-3.8/lib/python3.8/site-packages | ||
|
||
Next, copy the `bcc` package from the global site-packages to the virtualenv local site-packages: | ||
|
||
cp -r /usr/lib/python3/dist-packages/bcc <prefix>/venv-3.8/lib/python3.8/site-packages/ | ||
|
||
Now the `bcc` package should be available in the virtualenv python. | ||
You can test it with the following command with activated virtualenv: | ||
|
||
python3 -c "import bcc" | ||
|
||
which should successfully finish (i.e. `ModuleNotFoundError` should not be raised). |
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
Oops, something went wrong.