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