430333409c
Fix nOS-V task pause and add regression test
2022-06-03 11:36:27 +02:00
c40348e2a8
Keep the thread set after the task ends
...
Allows the emulator to check when an inner task ends the next in the
stack has the same thread as before.
2022-06-02 15:43:42 +02:00
b0e25f29c7
Add an stronger restriction for task switching
...
In nOS-V, we can only switch from a running task to another if they are
from the same thread.
2022-06-02 15:32:40 +02:00
2ac9a76b3b
The task and type ids cannot be negative
2022-06-02 15:31:35 +02:00
b0f693360c
Use a hash of the type label to derive the gid
...
This avoids different processes running tasks with the same type label
to have different colors.
2022-06-02 15:28:04 +02:00
fa9196fd63
Add support for nOS-V task types
...
Use a unique identifier for each type, so we don't mix types with the
same id per-process.
2022-06-01 17:17:13 +02:00
70891355ec
Use only a stack of tasks for nosv
...
The running task is inferred from the task on top of the stack. Also,
allow a nested task to execute when there are others in the stack.
2022-06-01 16:39:52 +02:00
26a29d3eda
Emit the rank too when the task ends
2022-06-01 16:39:52 +02:00
c097d769b1
Transform asserts and follow coding style
2022-06-01 16:39:42 +02:00
David Alvarez
a8b1256375
Support for nested tasks
2022-04-25 12:20:33 +02:00
1b1ca7e232
Add rank support in metadata
2021-12-10 18:37:14 +01:00
f8d989b214
Add extra checks when running a new task in nosv
2021-12-09 16:08:45 +01:00
75c32f3a99
Transform all aserts into unconditional checks
2021-12-09 16:08:36 +01:00
5e2409f69f
Ensure only one thread is running per CPU
2021-11-29 11:12:11 +01:00
d54c287ec8
Split ovni trace funtions to another source file
2021-11-19 16:48:53 +01:00
9944b391ae
Mark as dirty all CPU channels
2021-11-17 12:11:13 +01:00
5dc195a037
Remove nosv code in favor of the thread type
2021-11-03 11:33:14 +01:00
41211eec8a
Use the values as-is for appid, taskid and typeid
2021-11-03 11:32:17 +01:00
d3e87c2272
Add GPLv3 and MIT licenses
2021-11-03 11:32:17 +01:00
be7375a69b
Add support for sfree in nosv subsystems
2021-11-03 11:32:08 +01:00
3c913dd26b
Implement extended init for CPU channels
2021-10-21 16:53:01 +02:00
29b7662e41
Collapse nOS-V API switch
2021-10-21 16:53:01 +02:00
5a940540d3
Use priority queue for streams and fast channels
...
A priority queue (in heap.h) is used to keep the next event ready in the
emulator loop. Additionally, a list of dirty channels is keept to
limit the complexity of the propagation and emit phases.
2021-10-21 16:53:00 +02:00
Kevin Sala
52ba53ffda
Gathering nOS-V API instrumentation as new subnamespace
2021-10-21 16:53:00 +02:00
8f407d6ad2
Prefix subsystem values with "NOSV_"
2021-10-21 16:53:00 +02:00
351419a04d
Simplify nosv subsystem enter-exit functions
2021-10-21 16:53:00 +02:00
Kevin Sala
7def854b8b
Adding subsystem states for some nOS-V API calls
...
This commit includes states for the nosv_pause, nosv_yield,
and nosv_waitfor and nosv_scheduling_point API calls.
2021-10-21 16:53:00 +02:00
ac6013419b
Replace class by category to avoid C++ problems
2021-10-21 16:53:00 +02:00
1d4796521b
Add cooling and warming states
2021-10-21 16:53:00 +02:00
3f22afc4b3
Handle all events with CPU and thread channels
2021-10-21 16:53:00 +02:00
fbfbb8fc0f
Introduce channels
2021-10-21 16:15:29 +02:00
abdbd8d64c
Add virtual events
2021-09-28 19:32:16 +02:00
b60c6da764
Emit sched fake events as well
2021-09-28 19:32:16 +02:00
31e3f1218f
Add nos-v scheduler subsystem events
2021-09-28 19:32:16 +02:00
4e971bceff
Write multiple prv files and add app id view
2021-08-03 18:42:56 +02:00
c42711908b
Fix empty streams
2021-08-02 12:34:11 +02:00
Rodrigo
4e23d7d435
WIP
2021-08-02 10:08:58 +02:00
dc2df90cc4
Load process directories using the pid
2021-07-30 21:37:25 +02:00
d7c81b3048
Add jumbo events
2021-07-30 20:08:40 +02:00
77a879c0a0
Add task types
2021-07-29 18:13:41 +02:00
56c86718fd
Add nosv task support
2021-07-29 17:46:25 +02:00
d25bbed350
Distribute emulator into modules
2021-07-28 11:56:35 +02:00