Commit Graph

92 Commits

Author SHA1 Message Date
f6a57764d4 Protect some sections agains clang-format 2022-09-29 16:51:59 +02:00
834b33af33 Use SPDX license identifiers 2022-09-29 14:16:47 +02:00
121030537d Store the hostname until the first dot
The loom name "loom.xyz.123" will produce the hostname "xyz", so Nanos6 programs
can use the ovnisync tool too.

Also, sort the loom array directly, so we avoid potential problems by sorting
the loom and the hostnames individually (when there are repeated entries).
2022-09-22 11:56:48 +02:00
baff1c050b Add preliminar support for taskfor
The emulator cannot handle tasks that are executed multiple times and
concurrently. The task for executes a single task (with unique id) multiple
times by using different arguments. The task model needs to be extended to
support the taskfor clause properly. In the meanwhile, we simple set the
subsystem to be running a taskfor.
2022-09-21 13:30:22 +02:00
81a391fb4b Reorder subsystem states for better colors 2022-09-12 16:16:11 +02:00
008ba5a8ef Add processing ready tasks support 2022-09-12 16:16:11 +02:00
6329c8c982 Add support for Nanos6 signal event 2022-09-12 16:16:11 +02:00
8e690f0e44 Add Nanos6 support for memory allocation 2022-09-12 16:16:10 +02:00
306a64999a Add edie() and eerr() functions
These emit a detailed message of the state of the emulator on failure.
2022-09-12 16:16:10 +02:00
576936ef01 Add CPU idle and active events 2022-09-12 16:16:10 +02:00
982bc39490 Move thread type events to another channel 2022-09-12 16:16:10 +02:00
ac1ae8e69d Use one event per blocking type in Nanos6 2022-09-12 16:16:10 +02:00
24f135ca95 Fix indentation 2022-09-12 16:16:10 +02:00
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