Go to file
Rodrigo Arias 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
cfg Add kernel support for context switch events 2021-12-02 10:37:53 +01:00
doc Add kernel support for context switch events 2021-12-02 10:37:53 +01:00
test Remove ovni_clock_update() 2021-12-02 10:36:47 +01:00
.gitignore Ignore only the build directory 2021-11-16 19:20:50 +01:00
chan.c Transform bad exits into aborts in channels 2021-11-19 16:47:35 +01:00
chan.h Fix some warnings for clang and intel compilers 2021-11-16 19:20:50 +01:00
CMakeLists.txt Add kernel support for context switch events 2021-12-02 10:37:53 +01:00
common.h Split ovni trace funtions to another source file 2021-11-19 16:48:53 +01:00
COPYING Add GPLv3 and MIT licenses 2021-11-03 11:32:17 +01:00
dump.c Split ovni trace funtions to another source file 2021-11-19 16:48:53 +01:00
emu_kernel.c Add kernel support for context switch events 2021-12-02 10:37:53 +01:00
emu_nanos6.c Split ovni trace funtions to another source file 2021-11-19 16:48:53 +01:00
emu_nosv.c Ensure only one thread is running per CPU 2021-11-29 11:12:11 +01:00
emu_openmp.c Split ovni trace funtions to another source file 2021-11-19 16:48:53 +01:00
emu_ovni.c Allocate only the required CPUs 2021-11-19 16:48:53 +01:00
emu_tampi.c Simplifying TAMPI's emulator code 2021-11-29 15:16:44 +01:00
emu.c Add kernel support for context switch events 2021-12-02 10:37:53 +01:00
emu.h Add kernel support for context switch events 2021-12-02 10:37:53 +01:00
heap.h Use priority queue for streams and fast channels 2021-10-21 16:53:00 +02:00
ovni2prv.c Split ovni trace funtions to another source file 2021-11-19 16:48:53 +01:00
ovni.c Remove ovni_clock_update() 2021-12-02 10:36:47 +01:00
ovni.h Remove ovni_clock_update() 2021-12-02 10:36:47 +01:00
ovnisync.c Add GPLv3 and MIT licenses 2021-11-03 11:32:17 +01:00
parson.c Store CPU list in a metadata.json file 2021-08-03 17:48:37 +02:00
parson.h Store CPU list in a metadata.json file 2021-08-03 17:48:37 +02:00
pcf.c Add kernel support for context switch events 2021-12-02 10:37:53 +01:00
pcf.h Add GPLv3 and MIT licenses 2021-11-03 11:32:17 +01:00
plot-drift.py Add GPLv3 and MIT licenses 2021-11-03 11:32:17 +01:00
prv.c Set the trace duration in the PRV header 2021-11-03 11:33:16 +01:00
prv.h Set the trace duration in the PRV header 2021-11-03 11:33:16 +01:00
README.txt Add testing instructions to README 2021-11-16 19:22:55 +01:00
sort.c Add a tool to sort unordered events 2021-12-02 10:37:52 +01:00
test_speed.c Remove ovni_clock_update() 2021-12-02 10:36:47 +01:00
trace.c Allow the traces to be modified 2021-12-02 10:36:47 +01:00
trace.h Fix memory leaks 2021-11-19 16:48:53 +01:00
uthash.h Add nosv task support 2021-07-29 17:46:25 +02:00
utlist.h Add utlist.h for double linked lists 2021-10-21 16:53:00 +02:00

           ovni - Obtuse but Versatile nOS-V Instrumentation

The ovni instrumentation project is composed of a runtime library (libovni.so),
which generates a fast binary trace, and post-processing tools such as the
emulator (emu), which transform the binary trace to the PRV format, suitable to
be loaded in Paraver.

The libovni.so library is licensed under MIT, while the rest of tools are GPLv3
unless otherwise stated.

For more information, take a look at the doc/ directory.

To build ovni you would need a C compiler, MPI and cmake version 3.10 or newer.
To compile in build/ and install into $prefix use:

  % cmake -DCMAKE_INSTALL_PREFIX=$prefix -S . -B build
  % cd build
  % make
  % make install

To run the tests you can run (from the build directory):

  % make test

See cmake(1) and cmake-env-variables(7) to see more information about
the variables affecting the generation and build process.