Go to file
Rodrigo Arias 354f2f50eb Register emulation models only if required
Until now, emulation models were always being registered via probe(),
which causes the emulator to initialize all the channels. To reduce the
overhead, the channels were not connected or registered in the bay
until the first event of that model was received. This delayed connect
was causing issues in muxes where the newly connected model required
refreshing the touched channels. Which in turn was causing unexpected
PRV events.

By determining which models we need to enable, we can remove the delayed
connect mechanism and just enable those models at initialization time,
and connect the channels.
2023-11-16 12:39:05 +01:00
cfg Add MPI model with interface view 2023-09-06 18:11:18 +02:00
cmake Use pkg-config to find nOS-V 2023-11-08 15:58:46 +01:00
doc Add thread metadata 2023-11-16 12:21:50 +01:00
include Add thread metadata 2023-11-16 12:21:50 +01:00
src Register emulation models only if required 2023-11-16 12:39:05 +01:00
test Register emulation models only if required 2023-11-16 12:39:05 +01:00
.clang-format Allow single line enums 2023-04-20 10:53:11 +02:00
.gitignore Ignore some directories and tags 2022-09-29 16:51:59 +02:00
.gitlab-ci.yml Port nix CI to flakes 2023-10-19 11:18:45 +02:00
.readthedocs.yaml Add .readthedocs.yaml file 2023-11-08 16:29:00 +01:00
CHANGELOG.md Release version 1.4.1 2023-11-16 12:07:31 +01:00
CMakeLists.txt Release version 1.4.1 2023-11-16 12:07:31 +01:00
COPYING Add GPLv3 and MIT licenses 2021-11-03 11:32:17 +01:00
flake.lock Port nix CI to flakes 2023-10-19 11:18:45 +02:00
flake.nix Use pkg-config to find nOS-V 2023-11-08 15:58:46 +01:00
mkdocs.yml Add MPI model with interface view 2023-09-06 18:11:18 +02:00
README.md Change the readme to markdown format 2022-11-14 10:40:26 +01:00

Ovni logo

The ovni project is composed of a runtime library (libovni.so), which generates a fast binary trace, and post-processing tools such as the emulator ovniemu, which transform the binary trace to the PRV format, suitable to be loaded in Paraver.

The libovni.so library is licensed under MIT, while the rest of tools are GPLv3 unless otherwise stated.

For more information, read the documentation online or take a look at the doc/ directory. You can display the documentation in HTML by running mkdocs serve from the root directory.

To build ovni you would need a C compiler, MPI and cmake version 3.20 or newer. To compile in build/ and install into $prefix use:

$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=$prefix ..
$ make
$ make install

To run the tests you can run (from the build directory):

$ make test

See cmake(1) and cmake-env-variables(7) to see more information about the variables affecting the generation and build process.