a0a70b1ffc
Ensure the return value is used
2023-03-24 12:08:45 +00:00
30761c266b
Emit the rank too when switching Nanos6 tasks
...
The task type and rank are allowed to emit PRV duplicates.
2023-03-24 12:08:45 +00:00
31b2ef5ffe
Emit the appid and type in nosv task switch
...
Duplicates are allowed in the PRV for the task type, appid and rank, as
we may switch to inline if0 tasks with the same values.
2023-03-24 12:08:45 +00:00
17a0d241f6
Prefix model functions to prevent clashes
2023-03-24 12:08:45 +00:00
c508929835
Export the function to get the gid from a label
2023-03-24 12:08:45 +00:00
68690b4127
Define all static PRV types in a global enum
2023-03-24 12:08:45 +00:00
55624d4c68
Remove commented code from system.h
2023-03-24 12:08:45 +00:00
8c509475f9
Fix dbg() call
2023-03-24 12:08:45 +00:00
c39e75a8d5
Always compile dbg() statements
2023-03-24 12:08:45 +00:00
53c10aab2d
Reuse ARRAYLEN() from common.h
2023-03-24 12:08:45 +00:00
d432595c7d
Remove commented pcf code
2023-03-24 12:08:45 +00:00
a24477629d
Set PRV flags explicitly per channel
...
Added PRV_EMITDUP and PRV_SKIPDUP to allow the check to be skipped. By
default it will fail to emit duplicated values.
2023-03-24 12:08:45 +00:00
48cd4de92e
Use active thread for nodes subsystem
...
There is no reason to hide the thread (in the thread timeline) when
enters in Cooling or Warming states, as it won't cause any
oversubscription problem. CPU channel is still kept to track the running
thread.
2023-03-24 12:08:45 +00:00
15e1a5a0e9
Expand last stat message with event count
2023-03-24 12:08:45 +00:00
1d9d592b63
Fix context switch channel name
2023-03-24 12:08:45 +00:00
6039bf73c7
Ignore init time for speed stats
2023-03-24 12:08:45 +00:00
e907474ea9
Avoid double copy of mcv in emu_ev
2023-03-24 12:08:45 +00:00
c55a92872b
Remove unused appid cpu channel
...
A similar channel is used in nosv model to report the appid of the
running task.
2023-03-24 12:08:45 +00:00
038498846e
Use running thread for CPU context switches
2023-03-24 12:08:45 +00:00
8bf5d8c571
Fail gracefully when a unknown stream is found
2023-03-24 12:08:45 +00:00
0eb88af4b9
Use the CPU phyid for the name only
...
The logical index is used to change the affinity of the threads.
2023-03-24 12:08:45 +00:00
e0adf2f4a5
Don't run linter tests when interrupted
2023-03-24 12:08:45 +00:00
c2064c125e
Run all finish() methods even after failures
2023-03-24 12:08:45 +00:00
2ebae042a8
Add ovnisync and install targets
2023-03-24 12:08:45 +00:00
4f49289bf5
Use warn() for warnings
2023-03-24 12:08:45 +00:00
80eb1f3bdd
Detect large flushes (>10 ms)
2023-03-24 12:08:45 +00:00
933b0f48f9
Simplify burst stats
2023-03-24 12:08:45 +00:00
7dbd5d4228
Add missing error check for cpu_add_thread()
2023-03-24 12:08:45 +00:00
1e39bea929
Force return usage in cpu functions
2023-03-24 12:08:45 +00:00
334971d2dc
Finish the traces even if model_finish fails
2023-03-24 12:08:45 +00:00
7731c090ee
Run a propagation phase after connect
2023-03-24 12:08:45 +00:00
55c8af6b4d
Use the model functions to simplify ovni model
2023-03-24 12:08:45 +00:00
02dbf0b993
Add warn() and info() debug macros
2023-03-24 12:08:45 +00:00
2eac823014
Add missing PCF thread types
2023-03-24 12:08:45 +00:00
b1e3cf7403
Add PRV_NEXT flag to auto-increment the channel value
2023-03-24 12:08:45 +00:00
1b30d5989c
Remove unneeded memset in emu_ev()
2023-03-24 12:08:45 +00:00
01153d3d2c
Reuse player stream clock
2023-03-24 12:08:45 +00:00
722e32617a
Only run dead thread check on complete emulation
2023-03-24 12:08:45 +00:00
a1cc8ba87c
Check correct thread state at finalization
...
Prevents external threads from being left in Running state when they
finish, causing the virtual CPU to be always occupied with at least one
thread. This situation causes the virtual CPU to never report any
subsystem.
2023-03-24 12:08:45 +00:00
b5eb652580
Change wording for finish message
2023-03-24 12:08:45 +00:00
a49555fe46
Fail with wrong thread execute payload
...
Otherwise it produces a segfault.
2023-03-24 12:08:45 +00:00
7f82aa08f8
Remove duplicate ovniemu prefix in stats
2023-03-24 12:08:45 +00:00
2ae702e3e4
Remove unused cpu flush channel
...
This channel is now controlled by the ovni model.
2023-03-24 12:08:45 +00:00
b98ccfe3ad
Use row and type as identifiers in prv_register()
...
Prevents multiple channels from being accidentally set to the same row
with the same type.
2023-03-24 12:08:45 +00:00
0447c52f0b
Use strtol to parse the TID
2023-03-24 12:08:45 +00:00
2f3dcbed1f
Return error on enforce_task_rules for nanos6
2023-03-24 12:08:45 +00:00
7ba810fd4a
Set the thread->proc in proc_add_thread()
2023-03-24 12:08:45 +00:00
e33d6b9158
Load old streams too
2023-03-24 12:08:45 +00:00
49743d4b9e
Add path_filename()
2023-03-24 12:08:45 +00:00
ce4552add5
Remove old code
2023-03-24 12:08:45 +00:00
69e8f5ba12
Print a message while flushing the traces
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
2b84318ebe
Allow channels to be marked as dirty
2023-03-24 12:08:45 +00:00
d34a25a62d
Delay connect() until first event
...
Prevents enabling more channels than required until we observe an event
of that model. Ideally we should implement this logic in the probe hook
when the models can report if they are being used in the metadata.
2023-03-24 12:08:45 +00:00
8310127e78
Improve stat reporting
2023-03-24 12:08:45 +00:00
b9cc81fc52
Fix progress computation
...
Cannot use stream progress individually as their sizes are different.
2023-03-24 12:08:45 +00:00
c709938206
Reorder stream struct to reduce misses
2023-03-24 12:08:45 +00:00
626aa84814
Stop the emulation on ^C and finish the traces
2023-03-24 12:08:45 +00:00
9d7ff947b1
Get the first input cleanly
2023-03-24 12:08:45 +00:00
9d3fe80e93
Use track_get_output instead
2023-03-24 12:08:45 +00:00
e0842bde74
Update PRV bay callback call
2023-03-24 12:08:45 +00:00
bc901f58c2
Update model_thread tracking
2023-03-24 12:08:45 +00:00
70ad9e86aa
Connect CPU to thread channels directly
...
Avoids double updating of the tracking mux, as the CPU mux already
implements the filtering and select operations.
2023-03-24 12:08:45 +00:00
c43caccfd4
Create only one tracking mode per channel
2023-03-24 12:08:45 +00:00
5961c4fa96
Allow bay callbacks to be enabled and disabled
2023-03-24 12:08:45 +00:00
fe6db823a7
Index mux inputs by an integer
2023-03-24 12:08:45 +00:00
c72f71e61e
Reorder chan struct to reduce cache misses
2023-03-24 12:08:45 +00:00
2d8b68bff2
Link processes and CPUs with the loom
2023-03-24 12:08:45 +00:00
54cf4d3409
Use the logical index for now
2023-03-24 12:08:45 +00:00
3cc3d831f5
Report speed and remaining time too
2023-03-24 12:08:45 +00:00
3da9e27190
Skip "loom." prefix from hostname
2023-03-24 12:08:45 +00:00
e22e6a21e0
Update subsystem on nested tasks
...
Also check the return value of update_task_channels().
2023-03-24 12:08:45 +00:00
10de4c8f09
Specify channels with duplicated values
2023-03-24 12:08:45 +00:00
2d05fbaeea
Disable debug log from ovni event
2023-03-24 12:08:45 +00:00
4fb77610d2
Disable debug log from model
2023-03-24 12:08:45 +00:00
a654527e32
Trim extra slashes from trace directory
2023-03-24 12:08:45 +00:00
6b132f243e
Print duplicated value on error
2023-03-24 12:08:45 +00:00
e3339fef3b
Increase sort window
2023-03-24 12:08:45 +00:00
c6860854b4
Allow ovnidump to load unsorted traces
2023-03-24 12:08:45 +00:00
2fbf022823
Ignore config copy error
2023-03-24 12:08:45 +00:00
f2b6db6a08
Print emulation progress
2023-03-24 12:08:45 +00:00
0a9530dc6d
Remove semicolon from error macros
2023-03-24 12:08:45 +00:00
f76d160c69
Copy Paraver configs to output directory
2023-03-24 12:08:45 +00:00
819f767dbd
Use constant expression for the model_id
...
Fixes gcc 6.5.0
2023-03-24 12:08:45 +00:00
451d4be386
Port ovnisort
2023-03-24 12:08:45 +00:00
61b0efee34
Allow streams to step over unsorted events
2023-03-24 12:08:45 +00:00
2c5cfbb467
Port the kernel model
2023-03-24 12:08:45 +00:00
1bf5049567
Remove unused includes and enums
2023-03-24 12:08:45 +00:00
ada4525e85
Remove boilerplate from nodes model
2023-03-24 12:08:45 +00:00
3c0521f936
Remove boilerplate from nosv model
2023-03-24 12:08:45 +00:00
cd39230089
Remove boilerplate from the models
2023-03-24 12:08:45 +00:00
819b9aefa7
Add missing stdarg.h include
2023-03-24 12:08:45 +00:00
de8439c55b
Remove deprecated CHAN_ROW property
2023-03-24 12:08:45 +00:00
1b82415ce2
Remove old NODES model
2023-03-24 12:08:45 +00:00
02db4b6369
Add support for NODES
2023-03-24 12:08:45 +00:00
d48c9758bc
Remove old nOS-V model
2023-03-24 12:08:45 +00:00
e471930fd5
Use the track module in nOS-V too
2023-03-24 12:08:45 +00:00
259de4df43
Add track module and port Nanos6 model
2023-03-24 12:08:45 +00:00
09f58610ec
Port ovnidump using the trace and player modules
...
The -t option is now dropped as only the binary streams found in the
specified directory are dumped. A single binary stream can be also
dumped in the same way.
The relative path is prefixed, so we avoid the collision problem when
filtering TIDs from multiple nodes.
2023-03-24 12:08:45 +00:00
1ac276a220
Allow empty relpath in stream_load
2023-03-24 12:08:45 +00:00
8727126551
Use .obs extension for ovni binary streams
2023-03-24 12:08:45 +00:00
0746d2a0ec
Add CPU oversubscription test
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
55a5be7d13
Document linter mode in ovniemu usage
2023-03-24 12:08:45 +00:00
99fe0c4311
Add support for paraver row files
2023-03-24 12:08:45 +00:00
f1b130eb39
Move paraver sources to pv/
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
c5aa784caa
Reset ret after reading the last event
2023-03-24 12:08:45 +00:00
4a08add5ab
Add missing memory category in switch
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
4e2164646c
Add PCF information for nanos6
2023-03-24 12:08:45 +00:00
c94a786c1e
Use EXT() macro instead of extend_get()
2023-03-24 12:08:45 +00:00
2a12af8e56
Rename pcf_file to pcf
2023-03-24 12:08:45 +00:00
553e51741a
Use enum for tracking modes
2023-03-24 12:08:45 +00:00
e3880d178e
Move flush channel to ovni model only
2023-03-24 12:08:45 +00:00
9041583207
Add support for multiple models
2023-03-24 12:08:45 +00:00
123178c340
Remove emu prefix from player
2023-03-24 12:08:45 +00:00
8ed9063488
Remove emu prefix from trace and stream
2023-03-24 12:08:45 +00:00
242ea71ee6
Remove old nanos6.c and ovni.c
2023-03-24 12:08:45 +00:00
2c43a6c155
Move ust model back to ovni
2023-03-24 12:08:45 +00:00
9202085267
Remove tampi and openmp outdated models
2023-03-24 12:08:45 +00:00
cc5582c493
Split nanos6 model into separate files
2023-03-24 12:08:45 +00:00
4a8255e227
Complete Nanos6 model
2023-03-24 12:08:45 +00:00
524ccc4dd5
Begin porting nanos6 model
2023-03-24 12:08:45 +00:00
070c0f5e24
Remove ust directory
2023-03-24 12:08:45 +00:00
04029995be
Begin porting the ovni model
2023-03-24 12:08:45 +00:00
12bfd3fe26
Add loom and proc
2023-03-24 12:08:45 +00:00
f5db3a9814
Add cpu module and begin ovni model
2023-03-24 12:08:45 +00:00
5de74f15cb
Add emulator player to read events
2023-03-24 12:08:45 +00:00
aad925ffca
Update CMakeLists for emu
2023-03-24 12:08:45 +00:00
e1880e09f6
Read clock offsets in emu_system
2023-03-24 12:08:45 +00:00
183df35459
Use emu_args to parse input arguments
2023-03-24 12:08:45 +00:00
0687197f08
Initialize trace to zero
2023-03-24 12:08:45 +00:00
9a4af7e0ec
Add offset setter in streams
2023-03-24 12:08:45 +00:00
d6f9ed7125
Split clkoff initialization
2023-03-24 12:08:45 +00:00
b4d5e33d6c
Add emu_args parser
2023-03-24 12:08:45 +00:00
fe5f16bb7a
Add clock offset parser
2023-03-24 12:08:45 +00:00
894e972a65
Link threads and streams
2023-03-24 12:08:45 +00:00
f4e8b0b8a8
Load CPUs in emu_system
2023-03-24 12:08:45 +00:00
fb06a3ec32
Add new emulator
2023-03-24 12:08:45 +00:00
bac907dba0
Remove old emulator code
2023-03-24 12:08:45 +00:00
382cd7a371
Add ARRAYLEN macro
2023-03-24 12:08:45 +00:00
a4f235dd97
Add .ovnistream suffix to streams
2023-03-24 12:08:45 +00:00
b3e6c21b7c
Add unit tests for emu and emu_trace
2023-03-24 12:08:45 +00:00
aafc3471cc
Add emu_system to parse the trace hierarchy
2023-03-24 12:08:45 +00:00
c6a5e3b34d
Independize trace from the emulator
2023-03-24 12:08:45 +00:00
183634c8c4
Pass the bay in the prv_register() function
2023-03-24 12:08:45 +00:00
b3b1164fed
Add PRV trace support for patchbay channels
2023-03-24 12:08:45 +00:00
d394bb88c3
Fail when the return value is not used
2023-03-24 12:08:45 +00:00
e240937e58
Add multiple callback types in the patchbay
2023-03-24 12:08:45 +00:00
9928758f91
Test bay_find speed compared with direct access
2023-03-24 12:08:45 +00:00
36d0a44b57
Add bay_remove()
2023-03-24 12:08:45 +00:00
97b96801d1
Ensure mux channels are registered in the bay
2023-03-24 12:08:45 +00:00
f40a0a8d12
Prevent propagation loops
2023-03-24 12:08:45 +00:00
227a2d91df
Allow duplicates in the mux output channel
2023-03-24 12:08:45 +00:00
9cc563d0dd
Add properties to channels and duplicate support
2023-03-24 12:08:45 +00:00
0944f84ac9
Allow dirty writes selectively
2023-03-24 12:08:45 +00:00
e1e0e9662d
Pack the value structure to be hashable
2023-03-24 12:08:45 +00:00
1cea193ea3
Add support for patchbay and muxes
2023-03-24 12:08:45 +00:00
d34e0baa17
Ignore Nanos6 progress events 6P*
2023-03-20 20:45:21 +01:00
5a9f667553
Use snprintf() and check for buffer overflow
2022-12-19 15:24:34 +01:00
5a982d61c9
Build parson with PIC
2022-12-19 15:24:34 +01:00
ee462d92e8
Handle NULL version pointer
2022-12-16 13:34:31 +01:00
7c7ba729f5
Add unit test for the version parser
2022-12-16 13:34:31 +01:00
d3ce4a8765
Store the process directory in proc->dir
2022-12-16 13:33:03 +01:00
5404cc5e83
Split sources into src/emu and src/rt
...
The public includes are now in include/ and in internal includes in
src/include/. The ovni* tools are moved to emu/ovni*.c and liked with
the emu static library.
2022-12-16 13:31:31 +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
df169c89c3
Use RPATH for the MPI library
2022-11-15 10:12:59 +01:00
b1b4f37032
Copy Paraver configs into the trace directory
...
Keeps the trace self-contained.
2022-11-09 16:09:33 +01:00
58286dbd1a
Fix average computation in burst stats
2022-10-07 13:10:05 +02:00
22b34dcff6
Fix unsigned format
2022-10-07 12:46:33 +02:00
2497e71f81
Fix nback limit to detect full ring
2022-10-07 12:43:52 +02:00
75bc02bccd
Fix sorting without previous events
2022-10-07 12:17:59 +02:00
b8e521b49c
Print info when reaching the end of sort window
2022-10-07 11:22:29 +02:00
035791ff54
Increase ovnisort window to 100k events
2022-10-07 11:02:42 +02:00
37a636f387
Fix ovnisort check too
2022-10-07 11:02:03 +02:00
362c47553b
Fix ovnisort handling of last event
2022-10-07 09:38:20 +02:00
29406ca629
Fix TID and PID suffix in PCF
2022-10-05 15:56:26 +02:00
c1b2cf600c
Fix Nanos6 thread type suffix in the PCF
2022-10-05 14:52:24 +02:00
e9d977210b
Fix main task colors too
2022-10-04 11:44:19 +02:00
22233c6431
Copy events when updating CPU tracking channels
2022-10-03 10:56:09 +02:00
68a3daffe2
Add chan_copy
2022-10-03 10:55:58 +02:00
3f3c3c8f34
Reduce progress verbosity
2022-09-30 12:09:38 +02:00
a9c3d016ed
Show median in burst stats
2022-09-30 12:09:19 +02:00
404182c5fa
Improve emulation progress info
...
Now the progress shows 100% when the emulation ends.
2022-09-30 11:49:05 +02:00
99793dba10
Set continuation indent to 2 tabs
2022-09-30 10:25:09 +02:00
994f5f2098
Fix burst message
2022-09-29 18:43:23 +02:00
da1af8c133
Declare and set variables close to usage
2022-09-29 18:35:41 +02:00
73aa7887ae
Avoid clang-format in pcf tables
2022-09-29 18:34:57 +02:00
8370c33194
Remove ovni2prv
...
No longer used and may be confused with ovniemu
2022-09-29 18:09:54 +02:00
06823a6e69
Print burst stats
2022-09-29 18:03:16 +02:00
ca6d46698f
Move sources to src
2022-09-29 16:52:30 +02:00