2022-08-31 11:31:55 +02:00
|
|
|
![Ovni logo](fig/logo2.png)
|
2022-08-29 16:24:29 +02:00
|
|
|
|
|
|
|
This is the documentation of ovni, the Obtuse (but Versatile) Nanoscale
|
|
|
|
Instrumentation project.
|
|
|
|
|
|
|
|
!!! Note
|
|
|
|
|
|
|
|
Preferably write the name of the project as lowercase *ovni*
|
2022-08-31 11:31:55 +02:00
|
|
|
unless the grammar rules suggest otherwise, such as when
|
|
|
|
starting a new sentence.
|
2022-08-29 16:24:29 +02:00
|
|
|
|
2022-08-29 17:10:38 +02:00
|
|
|
The ovni project implements a fast instrumentation library that records
|
|
|
|
small events (starting at 12 bytes) during the execution of programs to
|
|
|
|
later investigate how the execution happened.
|
|
|
|
|
2022-08-29 16:24:29 +02:00
|
|
|
The instrumentation process is split in two stages: [runtime](runtime)
|
|
|
|
tracing and [emulation](emulation/).
|
|
|
|
|
2022-08-31 11:31:55 +02:00
|
|
|
During runtime, very short binary events are stored on disk which
|
2022-08-29 16:24:29 +02:00
|
|
|
describe what is happening. Once the execution finishes, the events are
|
|
|
|
read and processed to reproduce the execution during the emulation
|
|
|
|
process, and the final execution trace is generated.
|
|
|
|
|
|
|
|
By splitting the runtime and emulation processes we can perform
|
|
|
|
expensive computations during the trace generation without disturbing
|
|
|
|
the runtime process.
|
|
|
|
|
|
|
|
Each event belongs to a model, which has a direct mapping to a target
|
|
|
|
library or program. Each model is independent of other models, and they
|
|
|
|
can be instrumented concurrently.
|
|
|
|
|
2022-08-31 11:31:55 +02:00
|
|
|
## Quick start
|
|
|
|
|
|
|
|
To start a trace follow these steps:
|
|
|
|
|
|
|
|
- First enable the instrumentation of those libraries or programs that
|
|
|
|
you are interested in (see their documentation).
|
|
|
|
- Then simply run the program normally. You will see a new `ovni`
|
|
|
|
directory containing the runtime trace.
|
|
|
|
- Finally run the `ovniemu ovni` command to generate the Paraver traces.
|
|
|
|
- Use the command `wxparaver ovni/cpu.prv` to load the CPU trace.
|
|
|
|
- Load the configurations from the `cfg/` directory that you are
|
|
|
|
interested in, to open a timeline view.
|