Commit Graph

60 Commits

Author SHA1 Message Date
675c4f9ee8 Store the clock offset table inside the trace
The ovnisync tool now generates it by default inside ovni directory,
and the emulator recognizes it by default if exists.
2022-09-29 14:28:47 +02:00
834b33af33 Use SPDX license identifiers 2022-09-29 14:16:47 +02:00
598aea7dc9 Fix clock offset for looms with the same host
The offset is applied to all looms matching the host in the form
"loom.${host}.${suffix}", where the suffix is ignored.
2022-09-27 11:24:52 +02:00
7751099d60 Print when the clock offset is being loaded 2022-09-22 11:55:32 +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
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