diff --git a/CHANGELOG.md b/CHANGELOG.md index cfdbece..ea4d93d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,10 +10,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - OpenMP model version increased to 1.2.0. +- nOS-V model version increased to 2.5.0. ### Added - Add support OpenMP label and task ID views. +- Add support for nOS-V non-blocking scheduler server events (`VSN` and `VSn`). ## [1.11.0] - 2024-11-08 diff --git a/doc/user/emulation/events.md b/doc/user/emulation/events.md index 2540cba..4f58c1e 100644 --- a/doc/user/emulation/events.md +++ b/doc/user/emulation/events.md @@ -1,7 +1,7 @@ # Emulator events This is a exhaustive list of the events recognized by the emulator. -Built on Nov 13 2024. +Built on Mar 20 2025. ## Model nanos6 @@ -633,7 +633,7 @@ List of events for the model *tampi* with identifier **`T`** at version `1.0.0`: ## Model nosv -List of events for the model *nosv* with identifier **`V`** at version `2.4.0`: +List of events for the model *nosv* with identifier **`V`** at version `2.5.0`:
VTc(u32 taskid, u32 typeid)
creates task %{taskid} with type %{typeid}
@@ -660,9 +660,13 @@ List of events for the model *nosv* with identifier **`V`** at version `2.4.0`:
VSf
is no longer hungry
VS[
-
enters scheduler server mode
+
enters scheduler server blocking mode
VS]
-
leaves scheduler server mode
+
leaves scheduler server blocking mode
+
VSN
+
enters scheduler server non-blocking mode
+
VSn
+
leaves scheduler server non-blocking mode
VU[
starts submitting a task
VU]
diff --git a/doc/user/emulation/versions.md b/doc/user/emulation/versions.md index 2879fea..3ed6bf2 100644 --- a/doc/user/emulation/versions.md +++ b/doc/user/emulation/versions.md @@ -43,8 +43,10 @@ Track changes in emulator model versions. ## nOS-V +- nosv 2.5.0 + - Add support for non-blocking scheduler server events `VS{Nn}`. - nosv 2.4.0 - - Add support for `nosv_cond_wait`, `nosv_cond_signal` and `nosv_cond_broadcast` events VA{oOgGkK}. + - Add support for `nosv_cond_wait`, `nosv_cond_signal` and `nosv_cond_broadcast` events `VA{oOgGkK}`. - nosv 2.3.0 - Add `nosv.can_breakdown` attribute to metadata for breakdown checks. - nosv 2.2.0 diff --git a/src/emu/nosv/event.c b/src/emu/nosv/event.c index 9c7db91..4139187 100644 --- a/src/emu/nosv/event.c +++ b/src/emu/nosv/event.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2021-2024 Barcelona Supercomputing Center (BSC) +/* Copyright (c) 2021-2025 Barcelona Supercomputing Center (BSC) * SPDX-License-Identifier: GPL-3.0-or-later */ #include "nosv_priv.h" @@ -26,6 +26,8 @@ static const int ss_table[256][256][3] = { ['f'] = { CHSS, POP, ST_SCHED_HUNGRY }, ['['] = { CHSS, PUSH, ST_SCHED_SERVING }, [']'] = { CHSS, POP, ST_SCHED_SERVING }, + ['N'] = { CHSS, PUSH, ST_SCHED_SERVING }, /* Non-block */ + ['n'] = { CHSS, POP, ST_SCHED_SERVING }, ['@'] = { CHSS, IGN, -1 }, ['r'] = { CHSS, IGN, -1 }, ['s'] = { CHSS, IGN, -1 }, diff --git a/src/emu/nosv/setup.c b/src/emu/nosv/setup.c index d694eea..6d8babc 100644 --- a/src/emu/nosv/setup.c +++ b/src/emu/nosv/setup.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2021-2024 Barcelona Supercomputing Center (BSC) +/* Copyright (c) 2021-2025 Barcelona Supercomputing Center (BSC) * SPDX-License-Identifier: GPL-3.0-or-later */ #include "nosv_priv.h" @@ -46,7 +46,8 @@ static struct ev_decl model_evlist[] = { { "VS@", "self assigns itself a task" }, { "VSh", "enters the hungry state, waiting for work" }, { "VSf", "is no longer hungry" }, - PAIR_E("VS[", "VS]", "scheduler server mode") + PAIR_E("VS[", "VS]", "scheduler server blocking mode") + PAIR_E("VSN", "VSn", "scheduler server non-blocking mode") PAIR_S("VU[", "VU]", "submitting a task") PAIR_S("VMa", "VMA", "allocating memory") @@ -85,7 +86,7 @@ static struct ev_decl model_evlist[] = { struct model_spec model_nosv = { .name = model_name, - .version = "2.4.0", + .version = "2.5.0", .evlist = model_evlist, .model = model_id, .create = model_nosv_create,