David Alvarez
b226afb630
Implement Nanos6 emulator model
2022-09-12 16:16:10 +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
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
ca6c85b2fb
Use chan index in the PRV table initialization
2022-06-01 17:17:13 +02:00
c22457d7d3
Add dynamic PCF types and values
2022-06-01 17:17:13 +02:00
1de6c53247
Remove cur_task from the emulator
2022-06-01 16:39:52 +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
David Alvarez
a8b1256375
Support for nested tasks
2022-04-25 12:20:33 +02:00
1aae200614
Use pointers instead of indexes in streams
2022-01-12 11:05:38 +01:00
1b1ca7e232
Add rank support in metadata
2021-12-10 18:37:14 +01:00
Antoni Navarro
4719917ba9
Change Nanos6's name to NODES
2021-12-10 14:54:34 +00:00
19c535ef02
Poison assert()
2021-12-09 16:56:24 +01:00
ca9bbf6401
Close file descriptors after mmap
...
Now is no longer needed to increase the limit of the maximum number of
file descriptors opened when loading large traces.
2021-12-07 14:23:52 +01:00
ca95fb34a3
Add kernel support for context switch events
...
These events only show if a thread has been removed from the CPU, but
doesn't provide information about what other thread caused the context
switch. This type of information can be obtained even with strict
/proc/sys/kernel/perf_event_paranoid settings.
2021-12-02 10:37:53 +01:00
9bf99ad6a0
Add virtual flag to CPUs
2021-11-29 11:12:11 +01:00
a663f2c11b
Allocate only the required CPUs
2021-11-19 16:48:53 +01:00
8153742c1f
Use a linked list for threads in each CPU
...
Allows for unlimited threads in each CPU.
2021-11-19 16:48:53 +01:00
2e659f6dd3
Remove unused loom members
2021-11-19 16:48:53 +01:00
ffd492e922
Allocate only the required threads
2021-11-19 16:48:53 +01:00
bed8c35980
Allocate only the required processes
2021-11-19 16:48:53 +01:00
25cf3a8585
Allocate only the needed looms
2021-11-19 16:48:53 +01:00
d54c287ec8
Split ovni trace funtions to another source file
2021-11-19 16:48:53 +01:00
557371e836
Only allow and emit state transitions
...
Fixes the ghost events shown in the PRV trace. Only transitions to a
different state are allowed now.
2021-11-17 12:08:25 +01:00
97320eda4e
Add linter mode
2021-11-16 19:20:50 +01:00
73d9e323b9
Remove const array initialization
...
The implementation is not mandatory and clang doesn't support it.
2021-11-16 19:20:45 +01:00
Antoni Navarro
dc6713f75c
Further renames of Nanos6 labels and others
2021-11-12 16:15:33 +01:00
Antoni Navarro
c9b189feb8
Refactor emu_nanos6 into a simpler function
2021-11-12 11:53:53 +01:00
Antoni Navarro
04895a7aea
Rename Nanos6-Lite to Nanos6
2021-11-12 11:35:38 +01:00
Antoni Navarro
a9223b3886
Add Nanos6-Lite Instrumentation
2021-11-05 15:03:49 +01:00
5dc195a037
Remove nosv code in favor of the thread type
2021-11-03 11:33:14 +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
7bd8f960f8
Implement flushing events in the emulator
2021-10-21 16:53:01 +02:00
98db4a2fe0
Remove virtual events
2021-10-21 16:53:00 +02:00
6f8b46e753
Rename channel NTHREADS by NRTHREADS
2021-10-21 16:53:00 +02:00
9d83a319b0
Remove unused cpu members and simplify comments
2021-10-21 16:53:00 +02:00
d8845acb9f
Merge error states together
2021-10-21 16:53:00 +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
b9f9ae1a59
Set the loom in the CPU
2021-10-21 16:53:00 +02:00
151f5a2b77
Set the loom in the process
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
78656ce83a
Remove unused nosv ss
2021-10-21 16:53:00 +02:00
8ff3359c34
Add experimental OpenMP support
2021-10-21 16:53:00 +02:00
Kevin Sala
a7463723bc
Adding TAMPI instrumentation
2021-10-21 16:53:00 +02:00
Kevin Sala
d2a349e895
Fixing scheduling events' identifiers
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
019668ac53
Use local bursts per thread
2021-10-21 16:53:00 +02:00
1d4796521b
Add cooling and warming states
2021-10-21 16:53:00 +02:00