740d8b0d4b
Only allow one rank per host in ovnisync
2023-03-24 12:08:45 +00:00
f22d9084ba
Ensure all looms have at least one CPU
2023-03-24 12:08:45 +00:00
3d957f444c
Only ignore clock table on ENOENT
2023-03-24 12:08:45 +00:00
648411c686
Remove trailing new line in err() and die()
2023-03-24 12:08:45 +00:00
3f44be9f2f
Include path.h for loom.c
2023-03-24 12:08:45 +00:00
91957b4ed6
Remove commented code in loom.c
2023-03-24 12:08:45 +00:00
9a0d0df33d
Use path_has_prefix in loom.c
2023-03-24 12:08:45 +00:00
7772541f7d
Remove commented code in emu_stat.c
2023-03-24 12:08:45 +00:00
ad88e25278
Remove track mode argument from cpu_get_th_chan()
2023-03-24 12:08:45 +00:00
9a4a4a0005
Remove bay_remove()
2023-03-24 12:08:45 +00:00
5a03fd49e9
Remove function prefix from err()
2023-03-24 12:08:45 +00:00
9cb752e102
Emit warning when cfg directory exists
2023-03-24 12:08:45 +00:00
2e91d29ae9
Check fwrite return value
2023-03-24 12:08:45 +00:00
9304e84262
Fix spaces in ovni/setup.c
2023-03-24 12:08:45 +00:00
2be46393e1
Merge process_ev into model_ovni_event
2023-03-24 12:08:45 +00:00
06c250500c
Warn when median burst time exceeds 100 ns
2023-03-24 12:08:45 +00:00
7b0d446b02
Add payload size checks for affinity events
2023-03-24 12:08:45 +00:00
9b209fab20
Remove spaces from kernel/setup.c
2023-03-24 12:08:45 +00:00
5556c521a0
Simplify context switch logic
2023-03-24 12:08:45 +00:00
74f253b575
Ignore Nanos6 progress events
2023-03-24 12:08:45 +00:00
96cfd6247e
Remove switch in prv emit
2023-03-24 12:08:45 +00:00
9de0b18db2
Merge is_dup condition
2023-03-24 12:08:45 +00:00
38ebc3afce
Protect return value with USE_RET
2023-03-24 12:08:45 +00:00
9572d79f72
Remove PRV_SKIPNULL flag
2023-03-24 12:08:45 +00:00
4a2a9ec685
Replace uses of die() with err() + return
2023-03-24 12:08:45 +00:00
0bdfea309a
Simplify pcf_labels type
2023-03-24 12:08:45 +00:00
eaafd916be
Fix wrong malloc error message
2023-03-24 12:08:45 +00:00
6deef0308a
Fix underflow in path_remove_trailing()
2023-03-24 12:08:45 +00:00
8da0342760
Set thread and CPU channels to ignore duplicates
...
Some of the PRV channels no longer need to skip duplicates.
2023-03-24 12:08:45 +00:00
e625897766
Add CHAN_IGNORE_DUP to ignore duplicates
2023-03-24 12:08:45 +00:00
ab3e823134
Rename CHAN_DUPLICATES to CHAN_ALLOW_DUP
2023-03-24 12:08:45 +00:00
7fba5cbdcc
Use a common variable to define the loom prefix
2023-03-24 12:08:45 +00:00
411ea962ff
Don't assume chan value is int64 in chan_pop()
2023-03-24 12:08:45 +00:00
f61711047c
Remove buffer argument from value_str()
...
Use a ring of buffers instead, so we can printf() up to 16 values in
the same call.
2023-03-24 12:08:45 +00:00
36bf4250f3
Remove die() usage from track.c
2023-03-24 12:08:45 +00:00
f957461c92
Fix emit comment in bay.c
2023-03-24 12:08:45 +00:00
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