c8b95313ff
Fix unaligned access to 64 bits payload
2024-09-09 13:44:05 +02:00
e5448af6d8
Rebuild ring buffer pointers after injecting events
...
The ring buffer pointers are no longer valid as we may have displaced
events around. The pointers of the affected region are reconstructed by
reading the events again, following their size.
2024-09-09 13:43:59 +02:00
49149e452c
Check ring buffer order after injecting events
...
Ensure that we are not reading garbage.
2024-09-09 09:10:04 +02:00
b2d91391b3
Add sort-into-previous-region emu test
2024-09-09 09:10:04 +02:00
13f70be87b
Set nOS-V version required for tests to 2.3.1
...
Includes the required fixes for the kernel ring buffer tests.
2024-09-09 08:51:04 +02:00
71aa33d22f
Use string to set ovni.kernel_ringsize
2024-09-09 08:51:04 +02:00
4c3da12ea1
Fix typos in nOS-V kernel test
2024-09-09 08:51:04 +02:00
a47082730a
Ensure that nOS-V aborts on ring overflow
2024-09-09 08:51:04 +02:00
99dc3904af
Add overflow and normal kernel nOS-V tests
2024-09-09 08:51:04 +02:00
acf18c1bb4
Make nOS-V kernel overflow test configurable
2024-09-09 08:51:04 +02:00
e9788e22ad
Add test kernel ring overflow test for nOS-V
...
There is a problem in the way we are reading the buffer in nOS-V, which
fails when the ring buffer gets full. This regression test ensures it is
fixed.
Reported-by: David Álvarez <david.alvarez@bsc.es>
2024-09-09 08:51:04 +02:00
6cb983a7c4
Update nOS-V commit
2024-09-09 08:51:04 +02:00
7496a6a866
Fix easy cases of unneeded casts
2024-09-09 08:28:08 +02:00
c8750b9dfd
Enable -Wconversion and -Wsign-conversion
...
Prevents implicit conversions to go undetected, as they will have to be
explicit now.
2024-09-09 08:28:02 +02:00
d98ca97624
Fix unaligned load of 4 bytes for typeid
...
Use memcpy() to move the typeid to an aligned address.
2024-07-29 13:17:37 +02:00
61d57901b1
Enable undefined behavior sanitizer in CI
2024-07-29 13:09:41 +02:00
9c82038561
Add release link to tag 1.10.0
2024-07-26 16:20:34 +02:00
15dfa48d2d
Release version 1.10.0
2024-07-26 13:25:43 +02:00
2457e50712
Use always base 10 integer formats with scanf()
...
The %i printf variant tries to autodetect the base, so 010 becomes 8.
2024-07-24 16:36:54 +02:00
92c36502bc
Reduce heat and fibonnacci test sizes
2024-07-24 16:09:47 +02:00
439b716a71
Use int64_t printf formats for mark channels
2024-07-24 16:09:47 +02:00
97282ff051
Increase test timeout to 60 seconds
2024-07-24 16:09:47 +02:00
093c91521a
Fix error format strings in mark API
2024-07-24 16:09:44 +02:00
74aa7b4ea6
Update changelog
2024-07-24 15:12:09 +02:00
3d8c84e17c
Fix heap when size_t is not unsigned long long
...
When the width of size_t doesn't match the width of the unsigned long
long type, the number of leading zeros doesn't match, making the
heap_get_move() function return incorrect values. This is the case on
ARMv7 with 32 bits, where size_t is 32 bits but unsigned long long is 64
bits.
We check the size of size_t to select which builtin we need. The sizeof
operator cannot be used at preprocessing, so we rely on the
optimizations to only leave the proper assembly instruction.
Fixes: https://pm.bsc.es/gitlab/rarias/ovni/-/issues/193
2024-07-24 15:12:09 +02:00
91e8367d35
Set timeout to 30 seconds for tests
2024-07-24 15:12:09 +02:00
129020e1c5
Fix format errors in printf-like functions
2024-07-24 15:12:09 +02:00
d03fe10be8
Protect printf-like calls against format errors
2024-07-24 15:12:09 +02:00
3fdbb95080
Fix remaining problems for 32 bits architectures
2024-07-24 15:12:09 +02:00
Miquel Vidal i Pinyol
3103018404
Use format macro constants for fprintf and fscanf family functions
2024-07-24 15:12:09 +02:00
Miquel Vidal i Pinyol
478ed1f5d0
Use proper format specifiers
...
Allows compiling for architectures with different data type sizes
2024-07-24 15:12:09 +02:00
42feb53c86
Cross compile for ARMv7, Aarch64 and RISC-V 64
...
Adds CI cross-compilation tests for those architectures. Requires the
host to be able to run thos binaries via binfmt.
See: https://docs.kernel.org/admin-guide/binfmt-misc.html
2024-07-24 15:12:09 +02:00
391d695144
Add mark API to the changelog
2024-07-23 10:35:08 +02:00
038b9d8564
Document usage rules for the mark API
2024-07-23 10:35:08 +02:00
5448b5c0ec
Check duplicated mark channel types are the same
...
Ensure that two threads cannot define the same mark type with different
channel types.
2024-07-23 10:35:08 +02:00
be45235d15
Improve documentation of the mark API
2024-07-23 10:35:08 +02:00
87e4b829c5
Switch the mark tracking for threads to active
...
In the thread view, the values will still be visible when the thread
goes to Warming or Cooling states, instead of being removed like when
the thread enters the Paused state. The CPU view will continue to track
the running thread (only in the Running state).
2024-07-23 10:35:02 +02:00
1ab605b70d
Fix calloc() argument order
...
Catched by a new gcc 14.1.1 warning.
2024-07-22 16:45:29 +02:00
fbb78ae22d
Avoid initialization of mark channels without types
...
There is no need to create any channel or connect any channel to the PRV
output.
2024-07-22 16:42:23 +02:00
a21dc76d81
Use 100 as example mark type
...
As the types for mark timelines start at 100, it is likely that it
matches in the first try.
2024-06-21 09:45:54 +02:00
49cecb798a
Don't allow zero in PRV for mark channels
...
As the zero value is not allowed to reach the mark channels, there is no
need to allow it in the PRV end.
2024-06-21 09:39:32 +02:00
e31f0f1ded
Add fibonacci and heat RT tests for mark API
2024-06-20 17:39:42 +02:00
43792fb349
Clarify push and pop value in mark API
2024-06-20 11:48:31 +02:00
d6a83a0520
Allow duplicate values in mark channels
2024-06-20 11:41:38 +02:00
c803a7566f
Prevent zero values in the mark API
...
These values cannot be differentiated from a null value, due to a
Paraver limitation.
2024-06-20 11:41:09 +02:00
670edb6ddc
Add documentation for the mark API
...
Includes the runtime usage as well as how to adjust the Paraver
configuration.
2024-06-20 11:08:29 +02:00
f5d1e0a3cb
Add example mark configurations
2024-06-20 11:07:49 +02:00
a58b3d194c
Add CPU output for mark channels
...
By default they are configured to track the running thread.
2024-06-19 13:48:18 +02:00
d9180d950b
Make mark thread channels show only when running
...
Implements support for tracking the running thread using the track API.
2024-06-19 13:15:16 +02:00
9da7234684
Pause one thread in mark API emu test.
...
The Paraver timeline should hide the value of the thread while it is
paused. This will require adding a tracking module with a mux.
2024-06-19 13:13:18 +02:00