Commit Graph

64 Commits

Author SHA1 Message Date
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
0db35980a0 Add a test for multiple values of OVNI_TRACEDIR 2023-10-23 07:49:28 +00:00
Kevin Sala
afb81172a7 Add MPI emu tests 2023-09-06 18:11:19 +02:00
Kevin Sala
1e2102c0a0 Add TAMPI emu tests 2023-08-22 18:13:29 +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
929af74d3f Add sort-flush test 2023-06-28 12:28:40 +02:00
fb435842b2 Add nosv multiple-segment test 2023-04-25 17:00:42 +02:00
ff340df5b5 Disable flush-overhead test 2023-04-19 10:57:10 +00:00
4a936dcb99 Add test to prevent re-running tasks in Nanos6
For now is disabled until we have a better instrumentation for task
states.
2023-04-17 15:58:19 +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
676e30b4ca Order looms and processes by rank if given 2023-04-14 08:35:21 +00:00
602daabe23 Fix copyright years 2023-04-06 15:33:15 +00:00
c30a5d94b5 Add emu breakdown test for zero values 2023-04-06 15:33:15 +00:00
f848ddb37f Increase the flush overhead limit to 2 ms
The current CI disk is slower doing the flushes.
2023-04-05 15:35:37 +02:00
848a1de963 Constraint _GNU_SOURCE in compat.c only 2023-03-24 12:08:45 +00:00
ddbb7dd9f4 Add include-what-you-use
Adds forwards declarations in headers and includes all headers in
sources, even if they are found by transitive includes.
2023-03-24 12:08:45 +00:00
f22d9084ba Ensure all looms have at least one CPU 2023-03-24 12:08:45 +00:00
c0afc79d4e Use OK() and ERR() in unit tests
Also remove prefixes and trailing new lines in err() and die()
2023-03-24 12:08:45 +00:00
82f1cc287d Update copyright years to 2021-2023 2023-03-24 12:08:45 +00:00
78c4bba62e Match the PRV event in delayed-connect-ss test
Ensures the delayed connect of the CPU and thread muxes still causes the
output to be updated properly.
2023-03-24 12:08:45 +00:00
c57bef14a3 Add switch-same-type emu test for Nanos6 2023-03-24 12:08:45 +00:00
aab6808f4e Ensure the appid and the rank are emitted too 2023-03-24 12:08:45 +00:00
34c9f34f04 Get the gid from nanos6 task types too 2023-03-24 12:08:45 +00:00
4aebe81940 Document ss-mismatch nanos6 test 2023-03-24 12:08:45 +00:00
97dac6e83b Add switch-same-type nosv test
Generates a script with the values of the delta clock, PRV type and
value to be matched in the .prv traces, to ensure the emulator emitted
the switching type event.
2023-03-24 12:08:45 +00:00
803945dbc8 Return the gid of the created type 2023-03-24 12:08:45 +00:00
864ce4222f Store the first and last clock of emu events
Allows the tests to know the relative clock that will appear in the PRV
trace (with one rank only).
2023-03-24 12:08:45 +00:00
69506e5079 Update burst test regex 2023-03-24 12:08:45 +00:00
899b82c36f Update flush-overhead too 2023-03-24 12:08:45 +00:00
7b80aa6aaf Instrument running thread in sort and flush tests 2023-03-24 12:08:45 +00:00
b265442b8c Mark select channel as dirty on mux_init()
Ensures that the select callback will be called on the propagation
phase, immediately setting the right output. Otherwise the mux won't be
updated until the select channel sets a new value.
2023-03-24 12:08:45 +00:00
28517c2000 Add another subsystem between nested tasks 2023-03-24 12:08:45 +00:00
e3339fef3b Increase sort window 2023-03-24 12:08:45 +00:00
451d4be386 Port ovnisort 2023-03-24 12:08:45 +00:00
cd39230089 Remove boilerplate from the models 2023-03-24 12:08:45 +00:00
a818795d88 Add support for nOS-V
Most of the model is taken from nanos6, we should refactor them.
2023-03-24 12:08:45 +00:00
e344044b43 Use OB. for flush overhead test 2023-03-24 12:08:45 +00:00
2ce91de173 Move mp-rank test to nOS-V group 2023-03-24 12:08:45 +00:00
c13e004c6f Disable sort and trace-dependent tests 2023-03-24 12:08:45 +00:00
a91b1c554a Finish task types in PCF for nanos6 2023-03-24 12:08:45 +00:00
dbea90f525 Fail if the streams clock is too far apart
The current gate is set to 1 hour and it only checks the first event in
the stream. Added a test too.
2023-03-24 12:08:45 +00:00
e674c92f13 Enable emu and rt tests for nanos6 and ovni 2023-03-24 12:08:45 +00:00
e6cbe67254 Redesign full ring test 2022-12-19 15:46:37 +01:00
730082024f Initialize last_phy in test mp-simple 2022-12-19 15:30:27 +01:00
b6ce54b7ee Add version check and soname for libovni
Adds ovni_version_check() to test the version at runtime, set the
SONAME to the major version and install a symlinks to the complete
version:

  libovni.so -> libovni.so.1
  libovni.so.1 -> libovni.so.1.0.0
  libovni.so.1.0.0
2022-12-13 13:11:44 +01:00
971e8c1891 Prevent early end maker OU] in sort test 2022-10-07 13:17:26 +02:00
bacf33450d Add burst stats test 2022-10-07 13:08:51 +02:00