Commit Graph

248 Commits

Author SHA1 Message Date
6c7b64f7f2 Use memcmp() in value_is_equal() 2023-03-24 12:08:45 +00:00
2442d5decb Use 64 bit for type member in struct value
Now all the members are aligned to 64 bits, and there is no need to pack
the structure.
2023-03-24 12:08:45 +00:00
82f1cc287d Update copyright years to 2021-2023 2023-03-24 12:08:45 +00:00
6f31af0612 Remove ovni prefix from pcf.h guards 2023-03-24 12:08:45 +00:00
dc2a016c6b Add missing checks of return value 2023-03-24 12:08:45 +00:00
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