Commit Graph

42 Commits

Author SHA1 Message Date
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