2023-07-25 19:16:19 +02:00
|
|
|
# Changelog
|
|
|
|
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
|
|
|
|
## [Unreleased]
|
|
|
|
|
2023-11-13 12:53:47 +01:00
|
|
|
### Added
|
|
|
|
|
|
|
|
- New function `ovni_thread_require()` to selectively enable emulation models
|
|
|
|
and check their version is compatible (if not used all models will be
|
|
|
|
enabled).
|
|
|
|
- Support for per-thread metadata
|
|
|
|
- Store the version of libovni in the metadata
|
|
|
|
- Streams are marked as finished when `ovni_thread_free()` is called. A warning
|
|
|
|
is emitted in the emulator for those streams that are not finished properly.
|
|
|
|
- List the emulation models and versions with `ovniemu -h`
|
2023-12-11 12:56:07 +01:00
|
|
|
- New `-a` ovniemu option to enable all models
|
2023-11-13 12:53:47 +01:00
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Updated process metadata to version 2 (traces generated with an older libovni
|
|
|
|
are not compatible with the emulator).
|
|
|
|
- Emulation models now have a semantic version (X.Y.Z) instead of just a number.
|
2023-12-11 18:46:05 +01:00
|
|
|
- Install ovniver with the runpath set.
|
2023-11-13 12:53:47 +01:00
|
|
|
|
2023-11-16 12:07:31 +01:00
|
|
|
## [1.4.1] - 2023-11-16
|
|
|
|
|
2023-11-14 11:52:10 +01:00
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Fix emulation for level 2 or lower in nOS-V with inline tasks by
|
|
|
|
allowing duplicates in the subsystem channel.
|
|
|
|
|
2023-11-08 16:09:51 +01:00
|
|
|
## [1.4.0] - 2023-11-08
|
|
|
|
|
2023-10-17 15:44:07 +02:00
|
|
|
### Added
|
|
|
|
|
|
|
|
- Add `OVNI_TRACEDIR` envar to change the trace directory (default is `ovni`).
|
|
|
|
|
2023-07-27 19:21:19 +02:00
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Don't modify nOS-V subsystem state on task pause. The "Task: Running"
|
|
|
|
state is now renamed to "Task: In body" to reflect the change.
|
2023-11-02 18:21:26 +01:00
|
|
|
- Use pkg-config to locate the nOS-V library and get the version. Use
|
|
|
|
`PKG_CONFIG_LIBDIR=/path/to/nosv/install/lib/pkgconfig` to use a custom
|
|
|
|
installation path.
|
2023-07-27 19:21:19 +02:00
|
|
|
|
2023-09-07 10:26:12 +02:00
|
|
|
## [1.3.0] - 2023-09-07
|
|
|
|
|
2023-07-26 13:30:40 +02:00
|
|
|
### Added
|
|
|
|
|
|
|
|
- Add `ovni_version_get()` function.
|
2023-07-26 17:13:28 +02:00
|
|
|
- Add the `ovniver` program to report the libovni version and commit.
|
2023-08-03 12:44:57 +02:00
|
|
|
- Add nOS-V API subsystem events for `nosv_create()` and `nosv_destroy()`.
|
2023-08-18 12:33:01 +02:00
|
|
|
- Add TAMPI model with `T` code.
|
|
|
|
- Add subsytem events and cfgs for TAMPI model.
|
2023-08-31 10:38:24 +02:00
|
|
|
- Add MPI model with `M` code.
|
2023-09-07 10:26:12 +02:00
|
|
|
- Add function events and cfgs for MPI model.
|
2023-07-26 13:30:40 +02:00
|
|
|
|
2023-07-26 14:16:57 +02:00
|
|
|
## [1.2.2] - 2022-07-26
|
|
|
|
|
2023-07-25 19:16:19 +02:00
|
|
|
### Added
|
|
|
|
|
|
|
|
- Add this CHANGELOG.md file to keep track of changes.
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- Don't rely on /tmp or $TMPDIR in tests.
|
2023-07-25 19:47:38 +02:00
|
|
|
- Fix misleading message in version check.
|
2023-07-26 13:51:35 +02:00
|
|
|
- Fix error message when opening missing trace directories
|
2023-07-25 19:16:19 +02:00
|
|
|
|
|
|
|
## [1.2.1] - 2022-07-25
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- Set default visibility to hidden to prevent clashes with other functions such
|
|
|
|
as the verr() in the glibc.
|
|
|
|
- Don't hardcore destination directory names like lib, to use the ones in the
|
|
|
|
destination host (like lib64).
|
|
|
|
- Add support in ovnisort for cases where in the sorting region there are flush
|
|
|
|
events.
|
|
|
|
- Remove CI nix roots from the builds to allow the garbage collector to remove
|
|
|
|
the build.
|
|
|
|
- Fix the detection of the -fompss-2 flag in cmake by setting the flag at link
|
|
|
|
time too.
|
|
|
|
- Fix spawn task test by waiting for the task to finish before exiting.
|
|
|
|
|
|
|
|
## [1.2.0] - 2022-05-02
|
|
|
|
|
|
|
|
This version adds the initial support for the breakdown view and some fixes.
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Add the initial breakdown view showing the task type, the subsystem or the
|
|
|
|
idle state.
|
|
|
|
- Added the sort module for channels to support the breakdown view.
|
|
|
|
- Add the -b option in ovniemu to enable the breakdown trace.
|
|
|
|
- Add support for sponge CPUs in Nanos6.
|
|
|
|
- Add the cmake option `-DUSE_MPI=OFF` to build ovni without MPI.
|
|
|
|
- Add a test for two nOS-V shared memory segments.
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- Sort the timeline rows in MPI rank order if given.
|
|
|
|
- Skip duplicated entries when ovnisync to runs multiple times in the same node.
|
|
|
|
- Allow tasks to be re-executed to support the taskiter in the nOS-V model.
|
|
|
|
- Use the signed `int64_t` type for clock offsets, so they can be negative.
|
|
|
|
- Avoid fmemopen() due to a bug in old glibc versions.
|
|
|
|
- Fix clang format for braced list
|
|
|
|
- Fix buffer overflow in `sort_replace()` of the sort module.
|
|
|
|
- Set the size of the channel property arrays to prevent a buffer overflow.
|
|
|
|
|
|
|
|
## [1.1.0] - 2022-03-24
|
|
|
|
|
|
|
|
This version introduces the patch bay and a big redesign in the way the channels
|
|
|
|
are used along with some other changes.
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- The channels are now connected using the patch bay, where they must be
|
|
|
|
registered using an unique name.
|
|
|
|
- The tracking modes are implemented by using a mux, and an arbitrary way of
|
|
|
|
tracking other channels is now possible, as it is required for the breakdown
|
|
|
|
model.
|
|
|
|
- The channels don't have visibility with other parts of the code, they interact
|
|
|
|
with a callback only.
|
|
|
|
- The emulator code has been split into smaller modules which are independent of
|
|
|
|
each other, so we can unit test them separately.
|
|
|
|
- The models are now implemented following the model spec functions.
|
|
|
|
- Updated the ovni and Nanos6 models
|
|
|
|
- Model data is now stored by the `extend_set`/`get` methods, so it is kept
|
|
|
|
separate between models.
|
|
|
|
- The CPU and thread channels have been moved to the emulator while the ones
|
|
|
|
specific to the user space tracing with libovni.so are controlled by the ovni
|
|
|
|
model. This allows other thread/CPU tracing mechanisms (kernel events) to
|
|
|
|
update the emulator channels while the other models are not affected.
|
|
|
|
- The trace streams are now independent of the hierarchy loom/proc/thread, and
|
|
|
|
end with the suffix .obs, so we can add other types of traces in the future.
|
|
|
|
- Models can register any arbitrary number of channels on runtime, so we can add
|
|
|
|
load hardware counters in one channel each.
|
|
|
|
- Channels have a user friendly name so debugging is easier
|
|
|
|
- The die() abort mechanism has been transformed into if() + return -1, so we
|
|
|
|
can do unit testing and check the errors and also finish the PRV traces when
|
|
|
|
the emulator encounters an error and open them in Paraver with the last
|
|
|
|
processed event.
|
|
|
|
- The emulator can be stopped with ^C, producing a valid Paraver trace.
|
|
|
|
- Prevents leaving threads in the running state by adding a check at the end of
|
|
|
|
emulation
|
|
|
|
- The Paraver configurations files are copied into the trace directory.
|
|
|
|
|
|
|
|
### Removed
|
|
|
|
|
|
|
|
- The TAMPI and OpenMP models have been removed as they are not maintained.
|
|
|
|
- Punctual events are not implemented for now.
|
|
|
|
- No error states, when more than one thread is running in the virtual
|
|
|
|
CPU, no subsystem is shown in the CPU view.
|
|
|
|
|
|
|
|
## [1.0.0] - 2022-12-16
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- First ovni release.
|
|
|
|
|
|
|
|
[unreleased]: https://pm.bsc.es/gitlab/rarias/ovni/-/commits/master
|
2023-11-16 12:07:31 +01:00
|
|
|
[1.4.1]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.4.1
|
2023-11-08 16:09:51 +01:00
|
|
|
[1.4.0]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.4.0
|
2023-09-07 10:26:12 +02:00
|
|
|
[1.3.0]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.3.0
|
2023-07-26 14:16:57 +02:00
|
|
|
[1.2.2]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.2.2
|
2023-07-25 19:16:19 +02:00
|
|
|
[1.2.1]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.2.1
|
|
|
|
[1.2.0]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.2.0
|
|
|
|
[1.1.0]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.1.0
|
|
|
|
[1.0.0]: https://pm.bsc.es/gitlab/rarias/ovni/-/tags/1.0.0
|