1046 Commits

Author SHA1 Message Date
c2f9bf0b75 Update LLVM commit for OpenMP
The new passive policy is fixed in a new commit.
2025-04-23 15:16:32 +02:00
5eec5a17f3 Add passive and active tests for OpenMP
Makes sure that we are no longer generating too many pause events.
2025-04-23 15:12:40 +02:00
120e69eeec Remove deprecated gcc <= 8 and add gcc 14 2025-04-23 15:10:12 +02:00
a007e77f72 flake.lock: Update
Flake lock file updates:

• Updated input 'bscpkgs':
    'git+https://git.sr.ht/~rodarima/bscpkgs?ref=refs/heads/master&rev=3b21a32d835ff06741d5d59cd023ff2ae1ecb19f' (2024-01-15)
  → 'git+https://git.sr.ht/~rodarima/bscpkgs?ref=refs/heads/master&rev=f962816eabd534eafe948499322589921f230e72' (2025-03-07)
• Updated input 'nixpkgs':
    'path:/nix/store/wl5m5xfayd69ycyspzyd4rilfgl6wmh0-source?lastModified=1693663421&narHash=sha256-ImMIlWE/idjcZAfxKK8sQA7A1Gi/O58u5/CJA%2Bmxvl8%3D&rev=e56990880811a451abd32515698c712788be5720' (2023-09-02)
  → 'github:NixOS/nixpkgs/9c6b49aeac36e2ed73a8c472f1546f6d9cf1addc?narHash=sha256-i/UJ5I7HoqmFMwZEH6vAvBxOrjjOJNU739lnZnhUln8%3D' (2025-01-14)
2025-04-23 15:08:46 +02:00
3338878c72 Update nOS-V commit to reduce yield events 2025-03-24 16:01:38 +01:00
c847ec19ad Add noisy yield test in nOS-V
Ensure we can call nosv_yield in a loop without generating a lot of
events when using the level 3 instrumentation level. Noisy events are
now moved to level 4, so they shouldn't appear on the trace.
Additionally, make sure that the noisy events appear on level 4.
2025-03-21 16:57:44 +01: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
Some checks failed
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
a7103f8510 Release version 1.11.0 2024-11-08 10:26:10 +01:00
d931a68b3e
Set cfg colors for nosv_cond apis 2024-11-08 10:13:01 +01:00
a297adab7a
Add tests for nosv_cond 2024-11-08 10:13:00 +01:00
b5fd438ce0
Add nosv_cond API events (nosv 3.1.0) 2024-11-08 10:13:00 +01:00
a4a5bf0d37
Update nosv 2024-11-08 10:13:00 +01:00
180ac51aea Use fixed clock for sort-into-previous-region test
With large values of clocks, awk starts to lose precision due handling
the time as floating point values, which causes the test to fail. By
always setting the clock of the events to a known value we can just
compare the outcome as-is, without performing any arithmetic operation.

Fixes: https://pm.bsc.es/gitlab/rarias/ovni/-/issues/205
2024-11-06 11:51:57 +01:00
73b19ca1c4 Allow setting manual clock for emu events 2024-11-06 11:51:55 +01:00
31e8802803 Allow partial CPUs in thread metadata 2024-11-05 10:56:51 +01:00
fe860b2e38 Add partial-cpus test 2024-11-05 10:56:29 +01:00
60b575c8f8 Add python3 dependency for openmp 2024-10-29 09:42:03 +01:00
3a20cb717c Update runtimes, clang and ovni commits for CI 2024-10-29 09:41:58 +01:00
3bbfe0f0ec Update changelog 2024-10-25 14:39:41 +02:00
04d984d4fc Make cpu index check more strict 2024-10-25 14:22:37 +02:00
05c4ed4963 Remove info() call leftover in libovni 2024-10-25 14:22:37 +02:00
7cf69d055a Remove ovni as explictly required model
It is already added as a requirement in ovni_thead_init().
2024-10-25 14:22:37 +02:00
4c80cb3ed1 Fix typos in docs and extend CPU index usage 2024-10-25 14:22:32 +02:00
4c5e3ae151 Make all atomic operations explicit 2024-10-25 13:41:15 +02:00
86d0d11869 Add trace diagram and organize concepts 2024-10-25 13:41:15 +02:00
bf8c609dbd Remove trailing slashes from tracedir 2024-10-25 13:41:15 +02:00
706aa4a787 Rename trace-model.md to just trace.md 2024-10-25 13:41:15 +02:00
dd5b85d2c8 Add examples in some trace concepts 2024-10-25 13:41:15 +02:00
53aa3b3679 Add example program for mark API 2024-10-25 13:41:15 +02:00
6c33a2f4c0 Document environment variables 2024-10-25 13:41:15 +02:00
ea77f3d72e Fix unit-stream test 2024-10-25 13:41:15 +02:00
c190d27467 Remove tracing.md 2024-10-25 13:41:15 +02:00
ecf4c5da8c Update trace specification to version 3 2024-10-25 13:41:15 +02:00
6285a47f72 Explain some concepts in the documentation 2024-10-25 13:41:15 +02:00
5d4fa15eb9 Change hyperlinks to point to .md files
Allows mkdocs to discover broken links when the pointed document has
moved.
2024-10-25 13:41:15 +02:00
bb4e4d7e56 Emit rank information after ovni_thread_init 2024-10-25 13:41:15 +02:00
c9bbd542c5 Store rank information in the libovni thread
Prevents threads from finishing while another thread is being
initializing the rank information, causing a race to read the rank and
nranks.
2024-10-25 13:41:15 +02:00
6e99d91dae Use atomics to protect libovni process state
Multiple threads may attempt to initialize or finalize the process, so
we keep the state stored in an atomic integer to protect against bad
usage.
2024-10-25 13:41:15 +02:00
4c2071e906 Make calling ovni_thread_require() optional
When only emitting ovni events, there is no need to explicitly require
the ovni model, as libovni will already pre-populate it for the user.
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
65d1a5ecec Add merge-cpus-loom test
Ensure we can merge the information of CPUs from multiple threads.
2024-10-25 13:41:15 +02:00
6af367ba76 Fix spawn-task-external test
It is mandatory to call ovni_thread_free().
2024-10-25 13:41:15 +02:00
65907a96f4 Update tmpdir-metadata test 2024-10-25 13:41:15 +02:00
05c1724234 Move thread streams in ovni_thread_free()
The process metadata in metadata.json 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
c61f5a8772 Ensure the thread is ready before adding cpus 2024-10-25 13:41:15 +02:00