Add nosv_cond API events (nosv 3.1.0)
This commit is contained in:
parent
a4a5bf0d37
commit
b5fd438ce0
@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
### Added
|
||||
|
||||
- Introduce part model.
|
||||
- Support for `nosv_cond_wait`, `nosv_cond_signal` and `nosv_cond_broadcast` events VA{oOgGkK}.
|
||||
|
||||
### Changed
|
||||
|
||||
@ -17,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Update trace format to version 3.
|
||||
- The ovni.require metadata key is now mandatory.
|
||||
- Store process metadata in thread metadata.
|
||||
- nOS-V model version increased to 2.4.0.
|
||||
|
||||
### Fixed
|
||||
|
||||
|
@ -621,7 +621,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.3.0`:
|
||||
List of events for the model *nosv* with identifier **`V`** at version `2.4.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>
|
||||
@ -715,6 +715,18 @@ List of events for the model *nosv* with identifier **`V`** at version `2.3.0`:
|
||||
<dd>enters nosv_barrier_wait()</dd>
|
||||
<dt><a id="VAB" href="#VAB"><pre>VAB</pre></a></dt>
|
||||
<dd>leaves nosv_barrier_wait()</dd>
|
||||
<dt><a id="VAo" href="#VAo"><pre>VAo</pre></a></dt>
|
||||
<dd>enters nosv_cond_wait()</dd>
|
||||
<dt><a id="VAO" href="#VAO"><pre>VAO</pre></a></dt>
|
||||
<dd>leaves nosv_cond_wait()</dd>
|
||||
<dt><a id="VAg" href="#VAg"><pre>VAg</pre></a></dt>
|
||||
<dd>enters nosv_cond_signal()</dd>
|
||||
<dt><a id="VAG" href="#VAG"><pre>VAG</pre></a></dt>
|
||||
<dd>leaves nosv_cond_signal()</dd>
|
||||
<dt><a id="VAk" href="#VAk"><pre>VAk</pre></a></dt>
|
||||
<dd>enters nosv_cond_broadcast()</dd>
|
||||
<dt><a id="VAK" href="#VAK"><pre>VAK</pre></a></dt>
|
||||
<dd>leaves nosv_cond_broadcast()</dd>
|
||||
<dt><a id="VHa" href="#VHa"><pre>VHa</pre></a></dt>
|
||||
<dd>enters nosv_attach()</dd>
|
||||
<dt><a id="VHA" href="#VHA"><pre>VHA</pre></a></dt>
|
||||
|
@ -41,6 +41,8 @@ Track changes in emulator model versions.
|
||||
|
||||
## nOS-V
|
||||
|
||||
- nosv 2.4.0
|
||||
- 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
|
||||
|
@ -67,6 +67,12 @@ static const int ss_table[256][256][3] = {
|
||||
['U'] = { CHSS, POP, ST_API_MUTEX_UNLOCK },
|
||||
['b'] = { CHSS, PUSH, ST_API_BARRIER_WAIT },
|
||||
['B'] = { CHSS, POP, ST_API_BARRIER_WAIT },
|
||||
['o'] = { CHSS, PUSH, ST_API_COND_WAIT },
|
||||
['O'] = { CHSS, POP, ST_API_COND_WAIT },
|
||||
['g'] = { CHSS, PUSH, ST_API_COND_SIGNAL },
|
||||
['G'] = { CHSS, POP, ST_API_COND_SIGNAL },
|
||||
['k'] = { CHSS, PUSH, ST_API_COND_BCAST },
|
||||
['K'] = { CHSS, POP, ST_API_COND_BCAST },
|
||||
},
|
||||
/* FIXME: Move thread type to another channel, like nanos6 */
|
||||
['H'] = {
|
||||
|
@ -44,6 +44,9 @@ enum nosv_ss_values {
|
||||
ST_API_MUTEX_TRYLOCK,
|
||||
ST_API_MUTEX_UNLOCK,
|
||||
ST_API_BARRIER_WAIT,
|
||||
ST_API_COND_WAIT,
|
||||
ST_API_COND_SIGNAL,
|
||||
ST_API_COND_BCAST,
|
||||
ST_WORKER,
|
||||
ST_DELEGATE,
|
||||
|
||||
|
@ -65,6 +65,9 @@ static struct ev_decl model_evlist[] = {
|
||||
PAIR_E("VAt", "VAT", "nosv_mutex_trylock()")
|
||||
PAIR_E("VAu", "VAU", "nosv_mutex_unlock()")
|
||||
PAIR_E("VAb", "VAB", "nosv_barrier_wait()")
|
||||
PAIR_E("VAo", "VAO", "nosv_cond_wait()")
|
||||
PAIR_E("VAg", "VAG", "nosv_cond_signal()")
|
||||
PAIR_E("VAk", "VAK", "nosv_cond_broadcast()")
|
||||
|
||||
/* FIXME: VHA and VHa are not subsystems */
|
||||
{ "VHa", "enters nosv_attach()" },
|
||||
@ -82,7 +85,7 @@ static struct ev_decl model_evlist[] = {
|
||||
|
||||
struct model_spec model_nosv = {
|
||||
.name = model_name,
|
||||
.version = "2.3.0",
|
||||
.version = "2.4.0",
|
||||
.evlist = model_evlist,
|
||||
.model = model_id,
|
||||
.create = model_nosv_create,
|
||||
@ -161,6 +164,9 @@ static const struct pcf_value_label nosv_ss_values[] = {
|
||||
{ ST_API_MUTEX_TRYLOCK,"API: Mutex trylock" },
|
||||
{ ST_API_MUTEX_UNLOCK, "API: Mutex unlock" },
|
||||
{ ST_API_BARRIER_WAIT, "API: Barrier wait" },
|
||||
{ ST_API_COND_WAIT, "API: Cond wait" },
|
||||
{ ST_API_COND_SIGNAL, "API: Cond signal" },
|
||||
{ ST_API_COND_BCAST, "API: Cond broadcast" },
|
||||
{ ST_WORKER, "Thread: Worker" },
|
||||
{ ST_DELEGATE, "Thread: Delegate" },
|
||||
{ EV_SCHED_SEND, "EV Scheduler: Send task" },
|
||||
|
Loading…
Reference in New Issue
Block a user