Add nOS-V non-blocking scheduler server events
The events are emitted when we enter the scheduler with the non-blocking flag, which is usually the case when using the nosv_yield and nosv_schedpoint API functions. See: https://gitlab.bsc.es/nos-v/nos-v/-/merge_requests/155
This commit is contained in:
parent
c3248cf0c4
commit
a8a8a0e763
@ -10,10 +10,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- OpenMP model version increased to 1.2.0.
|
- OpenMP model version increased to 1.2.0.
|
||||||
|
- nOS-V model version increased to 2.5.0.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Add support OpenMP label and task ID views.
|
- 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
|
## [1.11.0] - 2024-11-08
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# Emulator events
|
# Emulator events
|
||||||
|
|
||||||
This is a exhaustive list of the events recognized by the emulator.
|
This is a exhaustive list of the events recognized by the emulator.
|
||||||
Built on Nov 13 2024.
|
Built on Mar 20 2025.
|
||||||
|
|
||||||
## Model nanos6
|
## Model nanos6
|
||||||
|
|
||||||
@ -633,7 +633,7 @@ List of events for the model *tampi* with identifier **`T`** at version `1.0.0`:
|
|||||||
|
|
||||||
## Model nosv
|
## 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`:
|
||||||
<dl>
|
<dl>
|
||||||
<dt><a id="VTc" href="#VTc"><pre>VTc(u32 taskid, u32 typeid)</pre></a></dt>
|
<dt><a id="VTc" href="#VTc"><pre>VTc(u32 taskid, u32 typeid)</pre></a></dt>
|
||||||
<dd>creates task %{taskid} with type %{typeid}</dd>
|
<dd>creates task %{taskid} with type %{typeid}</dd>
|
||||||
@ -660,9 +660,13 @@ List of events for the model *nosv* with identifier **`V`** at version `2.4.0`:
|
|||||||
<dt><a id="VSf" href="#VSf"><pre>VSf</pre></a></dt>
|
<dt><a id="VSf" href="#VSf"><pre>VSf</pre></a></dt>
|
||||||
<dd>is no longer hungry</dd>
|
<dd>is no longer hungry</dd>
|
||||||
<dt><a id="VS[" href="#VS["><pre>VS[</pre></a></dt>
|
<dt><a id="VS[" href="#VS["><pre>VS[</pre></a></dt>
|
||||||
<dd>enters scheduler server mode</dd>
|
<dd>enters scheduler server blocking mode</dd>
|
||||||
<dt><a id="VS]" href="#VS]"><pre>VS]</pre></a></dt>
|
<dt><a id="VS]" href="#VS]"><pre>VS]</pre></a></dt>
|
||||||
<dd>leaves scheduler server mode</dd>
|
<dd>leaves scheduler server blocking mode</dd>
|
||||||
|
<dt><a id="VSN" href="#VSN"><pre>VSN</pre></a></dt>
|
||||||
|
<dd>enters scheduler server non-blocking mode</dd>
|
||||||
|
<dt><a id="VSn" href="#VSn"><pre>VSn</pre></a></dt>
|
||||||
|
<dd>leaves scheduler server non-blocking mode</dd>
|
||||||
<dt><a id="VU[" href="#VU["><pre>VU[</pre></a></dt>
|
<dt><a id="VU[" href="#VU["><pre>VU[</pre></a></dt>
|
||||||
<dd>starts submitting a task</dd>
|
<dd>starts submitting a task</dd>
|
||||||
<dt><a id="VU]" href="#VU]"><pre>VU]</pre></a></dt>
|
<dt><a id="VU]" href="#VU]"><pre>VU]</pre></a></dt>
|
||||||
|
|||||||
@ -43,8 +43,10 @@ Track changes in emulator model versions.
|
|||||||
|
|
||||||
## nOS-V
|
## nOS-V
|
||||||
|
|
||||||
|
- nosv 2.5.0
|
||||||
|
- Add support for non-blocking scheduler server events `VS{Nn}`.
|
||||||
- nosv 2.4.0
|
- 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
|
- nosv 2.3.0
|
||||||
- Add `nosv.can_breakdown` attribute to metadata for breakdown checks.
|
- Add `nosv.can_breakdown` attribute to metadata for breakdown checks.
|
||||||
- nosv 2.2.0
|
- nosv 2.2.0
|
||||||
|
|||||||
@ -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 */
|
* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||||
|
|
||||||
#include "nosv_priv.h"
|
#include "nosv_priv.h"
|
||||||
@ -26,6 +26,8 @@ static const int ss_table[256][256][3] = {
|
|||||||
['f'] = { CHSS, POP, ST_SCHED_HUNGRY },
|
['f'] = { CHSS, POP, ST_SCHED_HUNGRY },
|
||||||
['['] = { CHSS, PUSH, ST_SCHED_SERVING },
|
['['] = { CHSS, PUSH, ST_SCHED_SERVING },
|
||||||
[']'] = { CHSS, POP, 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 },
|
['@'] = { CHSS, IGN, -1 },
|
||||||
['r'] = { CHSS, IGN, -1 },
|
['r'] = { CHSS, IGN, -1 },
|
||||||
['s'] = { CHSS, IGN, -1 },
|
['s'] = { CHSS, IGN, -1 },
|
||||||
|
|||||||
@ -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 */
|
* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||||
|
|
||||||
#include "nosv_priv.h"
|
#include "nosv_priv.h"
|
||||||
@ -46,7 +46,8 @@ static struct ev_decl model_evlist[] = {
|
|||||||
{ "VS@", "self assigns itself a task" },
|
{ "VS@", "self assigns itself a task" },
|
||||||
{ "VSh", "enters the hungry state, waiting for work" },
|
{ "VSh", "enters the hungry state, waiting for work" },
|
||||||
{ "VSf", "is no longer hungry" },
|
{ "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("VU[", "VU]", "submitting a task")
|
||||||
PAIR_S("VMa", "VMA", "allocating memory")
|
PAIR_S("VMa", "VMA", "allocating memory")
|
||||||
@ -85,7 +86,7 @@ static struct ev_decl model_evlist[] = {
|
|||||||
|
|
||||||
struct model_spec model_nosv = {
|
struct model_spec model_nosv = {
|
||||||
.name = model_name,
|
.name = model_name,
|
||||||
.version = "2.4.0",
|
.version = "2.5.0",
|
||||||
.evlist = model_evlist,
|
.evlist = model_evlist,
|
||||||
.model = model_id,
|
.model = model_id,
|
||||||
.create = model_nosv_create,
|
.create = model_nosv_create,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user