e00bb984bf
Bump OpenMP model to 1.2.1
2025-05-07 16:39:37 +02:00
e4b87609e7
Allow OpenMP tasks to run again
2025-05-07 16:39:37 +02:00
7275413370
Bump nOS-V model version to 2.5.1
...
See: https://gitlab.bsc.es/nos-v/nos-v/-/merge_requests/165
2025-05-02 13:46:01 +02:00
81c137a65e
Add OpenMP simple breakdown support
...
For now we only show the breakdown of the label and subsystem, without
the idle information.
2025-04-25 11:47:40 +02:00
a1a2941b64
Allow -b flag without nosv.can_breakdown
...
As we now have OpenMP and nOS-V models for breakdown, we may have the
situation in which nOS-V traces don't have enough events to enable the
breakdown model, but we do on OpenMP. Rather than stopping, disable the
nOS-V model with a warning and continue.
2025-04-23 15:32:52 +02:00
a8a8a0e763
Add nOS-V non-blocking scheduler server events
...
The events are emitted when we enter the scheduler with the non-blocking
flag, which is usually the case when using the nosv_yield and
nosv_schedpoint API functions.
See: https://gitlab.bsc.es/nos-v/nos-v/-/merge_requests/155
2025-03-21 16:57:44 +01:00
c3248cf0c4
Fix cast from pointer to integer in armv7
...
A pointer may not fit in a off_t type, so we first cast it to intptr_t
which must be able to hold it, then compute the diff which should fit in
a off_t and perform the cast.
Reported-by: Miquel Vidal Piñol <miquel.vidal@bsc.es>
2025-03-18 12:40:46 +01:00
Raúl Peñacoba Veigas
9826879bcd
Add OpenMP support for labels and taskID views
...
CI / build:rt (push) Failing after 15s
CI / build:debug (push) Successful in 13s
CI / build:asan (push) Failing after 13s
CI / build:nompi (push) Successful in 13s
CI / build:compilers (push) Successful in 13s
CI / build:local (push) Successful in 23s
Co-authored-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2024-12-09 16:41:16 +01:00
b5fd438ce0
Add nosv_cond API events (nosv 3.1.0)
2024-11-08 10:13:00 +01:00
31e8802803
Allow partial CPUs in thread metadata
2024-11-05 10:56:51 +01:00
04d984d4fc
Make cpu index check more strict
2024-10-25 14:22:37 +02:00
bf8c609dbd
Remove trailing slashes from tracedir
2024-10-25 13:41:15 +02:00
b49671d530
Always require the current ovni model
2024-10-25 13:41:15 +02:00
5c11c469f2
Make ovni.require a mandatory attribute
...
We no longer accept streams that don't have the ovni.require attribute.
2024-10-25 13:41:15 +02:00
361290e24f
Parse metadata from proc and loom directly
...
All the metadata keys are known to proc and loom only, making it
self-contained. The metadata.c module is no longer needed.
2024-10-25 13:41:15 +02:00
4180300e87
Reject incomplete thread streams
2024-10-25 13:41:15 +02:00
72e60e97ea
Store .obs and .json paths in stream struct
2024-10-25 13:41:15 +02:00
132b2fd536
Store loom CPUs in thread metadata
2024-10-25 13:41:15 +02:00
12835ad23a
Store process information in thread metadata
2024-10-25 13:41:15 +02:00
06a2262db9
Load thread tid from metadata
2024-10-25 13:41:15 +02:00
cc5578e306
Store loom name in metadata instead of path
2024-10-25 13:41:15 +02:00
8765588667
Store ovni.part in stream metadata
...
Allows multiple types of streams for different system parts: thread,
process, cpu, node...
2024-10-25 13:41:15 +02:00
9a8dc382a2
Store stream metadata in stream.json
...
Place all stream files in its own stream directory.
2024-10-25 13:41:15 +02:00
85859a488d
Add more path utility functions
2024-10-25 13:41:15 +02:00
36cf3121d1
Fix implicit signed conversions
CI / build:rt (push) Failing after 12s
CI / build:asan (push) Failing after 12s
CI / build:nompi (push) Successful in 59s
CI / build:debug (push) Successful in 1m50s
CI / build:local (push) Successful in 2m2s
CI / build:compilers (push) Successful in 2m27s
2024-09-09 13:44:05 +02:00
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
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
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
439b716a71
Use int64_t printf formats for mark channels
2024-07-24 16:09:47 +02:00
093c91521a
Fix error format strings in mark API
2024-07-24 16:09:44 +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
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
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
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
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
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
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
db57136f1b
Allow the value zero in marks
...
When using the mark API to track a counter, it is posible that the value
zero is being emitted as it will be properly displayed using the
gradient view in Paraver.
2024-06-19 12:26:35 +02:00
2c111fd98c
Add ovni_mark_set() to the API
...
Allows emitting a single event to change the value of the mark channel.
The mark type must be defined as single without the MARK_FLAG_STACK
flag.
2024-06-19 12:26:35 +02:00
90f8ae4188
Allow marks without labels defined
...
The labels are optional, so they shouldn't be required when processing
the mark types.
2024-06-19 12:26:35 +02:00