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
|
||||
|
||||
- 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
|
||||
|
||||
|
||||
@ -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`:
|
||||
<dl>
|
||||
<dt><a id="VTc" href="#VTc"><pre>VTc(u32 taskid, u32 typeid)</pre></a></dt>
|
||||
<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>
|
||||
<dd>is no longer hungry</dd>
|
||||
<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>
|
||||
<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>
|
||||
<dd>starts submitting a task</dd>
|
||||
<dt><a id="VU]" href="#VU]"><pre>VU]</pre></a></dt>
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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 },
|
||||
|
||||
@ -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,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user