Commit Graph

165 Commits

Author SHA1 Message Date
2046833700 Improve error handling in libovni
- Transform asserts into unconditional checks
- Abort as soon as an error is encountered
- Remove return errors
2021-12-09 14:18:33 +01:00
2ffd8407e0 Remove unneeded files from gitignore 2021-12-09 14:17:02 +01:00
9d32031552 Include the tests after loading MPI 2021-12-09 14:17:02 +01:00
4dc3b6116e Add UBsan build type 2021-12-09 14:17:02 +01:00
e8860a5f99 Inform of failed function in perror() 2021-12-09 14:11:57 +01:00
ca9bbf6401 Close file descriptors after mmap
Now is no longer needed to increase the limit of the maximum number of
file descriptors opened when loading large traces.
2021-12-07 14:23:52 +01:00
50081b0dc0 Allow empty unsorted regions
Additionally, the check mode (-c) ensures that a trace has been properly
sorted.
2021-12-02 10:37:53 +01:00
e1c433a1e7 Add kernel events documentation 2021-12-02 10:37:53 +01:00
ca95fb34a3 Add kernel support for context switch events
These events only show if a thread has been removed from the CPU, but
doesn't provide information about what other thread caused the context
switch. This type of information can be obtained even with strict
/proc/sys/kernel/perf_event_paranoid settings.
2021-12-02 10:37:53 +01:00
2961254838 Add a tool to sort unordered events
The region of past events must be enclosed by the OU[ and OU] events and
all the events within the region must be sorted. The sorting mechanism
looks back up to 10000 events, so it may fail if they are too far away
in the past.
2021-12-02 10:37:52 +01:00
766feb9fab Allow the traces to be modified 2021-12-02 10:36:47 +01:00
d79b887182 Remove ovni_clock_update()
The clock is now managed by the user, using the ovni_clock_now()
function to sample the current value and ovni_ev_set_clock() to set the
event clock timestamp. This change allows events with custom clock
values.
2021-12-02 10:36:47 +01:00
Kevin Sala
88d79aec8e Fixing compilation of test/flush.c
Fixes #25
2021-11-30 13:05:06 +01:00
Kevin Sala
9c371d8c12 Installing Paraver CFG files in PREFIX/share/ovni
Closes #26
2021-11-30 11:49:03 +01:00
Kevin Sala
345bb7e98a Simplifying TAMPI's emulator code 2021-11-29 15:16:44 +01:00
5e2409f69f Ensure only one thread is running per CPU 2021-11-29 11:12:11 +01:00
9bf99ad6a0 Add virtual flag to CPUs 2021-11-29 11:12:11 +01:00
5eadcb404e Use const qualifier in public ovni.h functions 2021-11-19 17:09:39 +01:00
a663f2c11b Allocate only the required CPUs 2021-11-19 16:48:53 +01:00
8153742c1f Use a linked list for threads in each CPU
Allows for unlimited threads in each CPU.
2021-11-19 16:48:53 +01:00
2e659f6dd3 Remove unused loom members 2021-11-19 16:48:53 +01:00
ffd492e922 Allocate only the required threads 2021-11-19 16:48:53 +01:00
bed8c35980 Allocate only the required processes 2021-11-19 16:48:53 +01:00
3e35f3d88b Fix memory leaks 2021-11-19 16:48:53 +01:00
8c58a7a6ab Add address sanitizer build type 2021-11-19 16:48:53 +01:00
25cf3a8585 Allocate only the needed looms 2021-11-19 16:48:53 +01:00
d54c287ec8 Split ovni trace funtions to another source file 2021-11-19 16:48:53 +01:00
34701b2219 Transform bad exits into aborts in channels 2021-11-19 16:47:35 +01:00
1b9225dd2a Add cmake option to enable debug logs
It can be enabled with -DENABLE_DEBUG_LOG=ON
2021-11-19 16:29:44 +01:00
cddda71cfb Early duplicate state detection in channels
These checks allows the emulator to abort at the moment in which two
consecutive states are going to be emitted by the channel, showing the
culpirit in the backtrace. Waiting for the check in chan_emit() hides
the source of the problem.
2021-11-19 16:22:37 +01:00
9944b391ae Mark as dirty all CPU channels 2021-11-17 12:11:13 +01:00
557371e836 Only allow and emit state transitions
Fixes the ghost events shown in the PRV trace. Only transitions to a
different state are allowed now.
2021-11-17 12:08:25 +01:00
78f5db4bce Add testing instructions to README 2021-11-16 19:22:55 +01:00
ba36f5702c Fix the test driver 2021-11-16 19:22:48 +01:00
def2510086 Remove janson.h as a build dependency 2021-11-16 19:20:50 +01:00
8eef8d0e60 Ignore only the build directory 2021-11-16 19:20:50 +01:00
85c1666f90 Prefix program names with "ovni"
The "emu" and "dump" programs now are called "ovniemu" and "ovnidump".
2021-11-16 19:20:50 +01:00
5fed28bad8 Use modern target-based dependency for MPI 2021-11-16 19:20:50 +01:00
77adb27cb9 Use <PackageName>_ROOT variables if possible 2021-11-16 19:20:50 +01:00
dd8519f6e6 Update readme with build instructions 2021-11-16 19:20:50 +01:00
40233b3628 Add test support 2021-11-16 19:20:50 +01:00
97320eda4e Add linter mode 2021-11-16 19:20:50 +01:00
4fcef1c5b6 Fix some warnings for clang and intel compilers 2021-11-16 19:20:50 +01:00
73d9e323b9 Remove const array initialization
The implementation is not mandatory and clang doesn't support it.
2021-11-16 19:20:45 +01:00
623a938b1a Add cmake support 2021-11-16 18:49:35 +01:00
Antoni Navarro
dc6713f75c Further renames of Nanos6 labels and others 2021-11-12 16:15:33 +01:00
Antoni Navarro
c9b189feb8 Refactor emu_nanos6 into a simpler function 2021-11-12 11:53:53 +01:00
Antoni Navarro
04895a7aea Rename Nanos6-Lite to Nanos6 2021-11-12 11:35:38 +01:00
Antoni Navarro
a9223b3886 Add Nanos6-Lite Instrumentation 2021-11-05 15:03:49 +01:00
29ea26e871 Emit flush events in order, after the user event
Fixes the backwards jump in time warnings each 2 MB of buffer, caused by
the flush events being written out of order.
2021-11-03 11:33:16 +01:00