Commit Graph

56 Commits

Author SHA1 Message Date
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
David Alvarez
b226afb630 Implement Nanos6 emulator model 2022-09-12 16:16:10 +02:00
9e6a965276 Report successful emulation 2022-09-12 15:57:07 +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
c22457d7d3 Add dynamic PCF types and values 2022-06-01 17:17:13 +02:00
1aae200614 Use pointers instead of indexes in streams 2022-01-12 11:05:38 +01:00
Antoni Navarro
4719917ba9 Change Nanos6's name to NODES 2021-12-10 14:54:34 +00:00
de70a057d4 Use signed integers for CPU ids 2021-12-09 16:08:45 +01:00
75c32f3a99 Transform all aserts into unconditional checks 2021-12-09 16:08:36 +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
3e35f3d88b Fix memory leaks 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
4fcef1c5b6 Fix some warnings for clang and intel compilers 2021-11-16 19:20:50 +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
e05f78bb0f Set the trace duration in the PRV header 2021-11-03 11:33:16 +01:00
d3e87c2272 Add GPLv3 and MIT licenses 2021-11-03 11:32:17 +01:00
98db4a2fe0 Remove virtual events 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
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
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
cd430a35ce Implement tracking channels in emu.c 2021-10-21 16:53:00 +02:00
0f09a3a514 Write the thread PCF file 2021-10-21 16:36:07 +02:00
8d043a8350 Keep a global list of threads and CPUs 2021-10-21 16:34:04 +02:00
5f4fe7f120 Prefix emulator input events with >>> 2021-10-21 16:28:37 +02:00
fbfbb8fc0f Introduce channels 2021-10-21 16:15:29 +02:00
28fa152169 Add preliminar nosv CPU subsystem support 2021-10-21 16:05:01 +02:00
abdbd8d64c Add virtual events 2021-09-28 19:32:16 +02:00
af22678b07 Close PCF files on exit 2021-09-28 19:32:16 +02:00
b60c6da764 Emit sched fake events as well 2021-09-28 19:32:16 +02:00
6a3ea0907a Enable pedantic and use C11 std 2021-09-28 19:30:31 +02:00
b9568cb052 Fix ovnisync table parsing 2021-09-28 12:22:56 +02:00
3a0541e5fa Check malloc error 2021-09-21 19:17:58 +02:00
Kevin Sala
8b78baa587 Fixing ovni for multiple nodes (workaround) 2021-09-21 15:15:26 +02:00
e80bcdd224 Avoid TID collisions searching only in cur_proc 2021-09-21 15:15:26 +02:00
aa3607f744 Fix emu memset initialization 2021-08-10 12:38:55 +02:00
Kevin Sala
674716804a Avoiding stack overflows 2021-08-10 10:18:21 +02:00
Kevin Sala
543dd51d8f Fixing compilation errors 2021-08-10 10:16:41 +02:00
1da0f1a096 Generate PCF and ROW files 2021-08-03 20:47:02 +02:00
e6e976023d Implement the clock offset correction 2021-08-03 19:56:31 +02:00
4e971bceff Write multiple prv files and add app id view 2021-08-03 18:42:56 +02:00
60862db890 Store CPU list in a metadata.json file
This allows early access to the CPU list in order to emit the PRV header
before consuming events from the streams.
2021-08-03 17:48:37 +02:00