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