Go to file
Rodrigo Arias 4b4f1bd218 Don't modify nOS-V subsystem state on task pause
In nOS-V, when a task was paused via the VTp event, two things were
happening: 1) the task state was set to pause and 2) the subsystem state
"Task: Running" was being popped.

This causes a problem when a task calls nosv_submit() in blocking mode,
as it will call nosv_pause() which will emit a VTp event from a
subsystem different than "Task: Running".

To solve this conflict, we handle the subsystems state and the task
state separately with the VTp and VTr events. The subsystem state "Task:
Running" no longer is connected to the state of the task and only shows
if we entered the body of the task or not. It has now been renamed to
"Task: In body".

The new state "Task: In body" represents that the task body has begun
the execution and is still in the stack, but the task may be paused. The
subsystem is not changed by the VTp (pause) or VTr (resume) events.

Fixes: https://pm.bsc.es/gitlab/rarias/ovni/-/issues/128
2023-10-23 11:26:17 +02:00
cfg Add MPI model with interface view 2023-09-06 18:11:18 +02:00
cmake Add cmake module to check the -fompss-2 flag 2023-05-31 19:15:47 +02:00
doc Don't modify nOS-V subsystem state on task pause 2023-10-23 11:26:17 +02:00
include Report the commit too with ovniver 2023-07-26 17:13:28 +02:00
src Don't modify nOS-V subsystem state on task pause 2023-10-23 11:26:17 +02:00
test Don't modify nOS-V subsystem state on task pause 2023-10-23 11:26:17 +02: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
CHANGELOG.md Don't modify nOS-V subsystem state on task pause 2023-10-23 11:26:17 +02:00
CMakeLists.txt Release version 1.3.0 2023-09-07 10:26:12 +02: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 Port nix CI to flakes 2023-10-19 11:18:45 +02: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.