Commit Graph

321 Commits

Author SHA1 Message Date
ab42ac4557 Add thread metadata 2023-11-16 12:21:50 +01:00
5d9aef4ed8 Remove rthread and rproc definitions from ovni.h 2023-11-16 12:21:50 +01:00
c13d57f0f6 Fix for nOS-V with ovni.level=2
When running without all the subsystem events enabled in nOS-V, it is
possible to emit two consecutive VTx events, which would push twice the
same value ST_TASK_BODY into the subsystem channel. This change relaxes
the subsystem channel to accept duplicate stacked values. A regression
test is also added.

Reported-By: Raúl Peñacoba Veigas <raul.penacoba@bsc.es>
2023-11-14 17:26:43 +01:00
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
0df018cf5f Fix segfault reading empty streams
The check_clock_gate() was trying to access to the first event in all
streams. However, streams that are empty don't have any event, so they
cause a NULL dereference. Skipping not active streams avoids the
problem.
2023-10-23 10:07:44 +02:00
Kevin Sala
7b4ebca002 Add OVNI_TRACEDIR envar to change trace directory
This commit introduces the OVNI_TRACEDIR environment variable to change
the directory where traces are generated. By default, when the envar is
not defined, the trace is still generated in the ovni directory. The
envar can take a trace directory name, a relative path to the directory,
or its absolute path. In the first case, the directory is created in the
current path $PWD.

Both libovni (rt) and ovnisync read this environment variable.
2023-10-23 07:49:28 +00:00
Kevin Sala
24252ebbb3 Use common's progname functions in ovnisync
This commit adds the progname_get function in common.h header and
extends the ovnisync tool to use them
2023-10-23 07:49:28 +00:00
Kevin Sala
9a628e78ca Add MPI model with interface view 2023-09-06 18:11:18 +02:00
Kevin Sala
276afd5479 Add TAMPI model with subsystems view 2023-08-22 18:13:29 +02:00
Kevin Sala
9269dd7202 Add nosv create and destroy API subsystem states 2023-08-17 13:23:59 +02:00
a3ffb2443a Report the commit too with ovniver 2023-07-26 17:13:28 +02:00
bf8a2213c1 Add the ovniver program to report the version 2023-07-26 16:31:56 +02:00
97c936d41f Add ovni_version_get() function
Allows the reding the version of the libovni.so currently loaded.
2023-07-26 16:31:30 +02:00
f08595b3a7 Report open error for missing trace directory 2023-07-26 13:51:35 +02:00
f8c6b7c7c0 Improve the version error message
Use the terminology want/got to determine which version the user is
requested and the version the library provides.
2023-07-25 19:55:51 +02:00
48df02f102 Always use the project version
Don't duplicated versions so we avoid the problem of missing one
instance to be updated.
2023-07-07 10:42:40 +02:00
ee9111a1ec Move ovni.pc.in into src/ 2023-07-05 13:13:53 +02:00
4abd92e139 Make ovni.h a public header of ovni target 2023-07-05 13:11:18 +02:00
cd2e844066 Use the installation directories provided by cmake
Some systems will define the library path as lib64. Also update other
install commands to use the values discovered by the GNUInstallDirs
module.
2023-07-05 12:52:56 +02:00
5a9086e6d1 Fix ovnisort with flush events
Sort the events in the sorting region before injecting them back in the
stream. This solves the problem with flush events OF[ and OF].
2023-06-29 13:25:15 +02:00
05979df34d Install ovnitop.1 into man1 subdirectory 2023-06-02 17:12:17 +02:00
d9b82494d0 Free the table at the end in ovnitop 2023-06-01 18:38:26 +02:00
c1b0768e7d Add ovnitop(1) manual page 2023-05-31 17:23:25 +00:00
553d0a1c62 Add ovnitop command 2023-05-31 17:23:25 +00:00
44d120d7a8 Version 1.2.0 2023-05-01 09:19:05 +02:00
c2b6bfd3a8 Set the size of the channel property arrays
Arrays which don't initialize the last elements of the enumeration are
shorter and will cause a buffer overflow when read in a loop.
2023-04-24 12:37:20 +02:00
a8944b3763 Fix buffer overflow in sort_replace()
The access to the array was done before the out of bound check.
2023-04-24 11:47:46 +02:00
49f915fda5 Add FIXME notice for taskiter support
Set the task->thread to NULL if we re-execute a task from the Dead
state, so it follows the behavior of a Created task.
2023-04-17 15:58:19 +00:00
David Alvarez
26d01d18eb Support taskiter by allowing tasks to re-launch 2023-04-17 15:58:19 +00:00
1ec6f799f1 Add missing label for sponge state 2023-04-14 13:39:37 +00:00
b16c30a5e6 Add Absorbing state to the idle view in Nanos6 2023-04-14 13:39:37 +00:00
6cafd347ce Add support for sponge subsystem state in Nanos6 2023-04-14 13:39:37 +00:00
171e439bd4 Allow builds without MPI with -DUSE_MPI=OFF 2023-04-14 11:27:30 +00:00
6eead7e28e Warn if some looms don't have the rank
Fallback to sorting by loom name instead.
2023-04-14 12:13:49 +02:00
bfff1a815e Don't set rank_min multiple times 2023-04-14 12:01:47 +02:00
9568d4f379 Inform the user of the sorting method selected 2023-04-14 08:35:21 +00:00
676e30b4ca Order looms and processes by rank if given 2023-04-14 08:35:21 +00:00
80b8b209fa Skip repeated hostnames in ovnisync 2023-04-06 17:52:28 +02:00
9e105413fd Replace brk with breakdown 2023-04-06 17:38:37 +02:00
602daabe23 Fix copyright years 2023-04-06 15:33:15 +00:00
7aa3434e79 Remove ENABLE_DEBUG comments 2023-04-06 15:33:15 +00:00
29a7011141 Consider the -b option experimental 2023-04-06 15:33:15 +00:00
999a79b074 Run Nanos6 connect hook at init for breakdown 2023-04-06 15:33:15 +00:00
1c82470bfc Remove initial subsystem by default 2023-04-06 15:33:15 +00:00
b17ff6d166 Add unknown subsystem state for Nanos6 2023-04-06 15:33:15 +00:00
1582a60522 Set tr mux output to unknown subsystem on NULL 2023-04-06 15:33:15 +00:00
a827113c2a Increasing breakdown row padding to match CPU 2023-04-06 15:33:15 +00:00
881e556e06 Fix pcf_sdd_value() return check 2023-04-06 15:33:15 +00:00
cc09920c80 Remove unused i variable in emu/nanos6/breakdown.c 2023-04-06 15:33:15 +00:00
6711afdb58 Fix include headers following IWYU 2023-04-06 15:33:15 +00:00