ovni/doc/user/emulation/events.md

193 lines
5.6 KiB
Markdown
Raw Normal View History

# Emulator events
2021-10-14 08:10:03 +02:00
This file contains an exhaustive list of events supported by the emulator.
- Punctual events don't produce a state transition.
- All events refer to the current thread.
- Descriptions must be kept short.
2022-09-05 20:17:56 +02:00
```txt
2021-10-14 08:10:03 +02:00
**********************************************************
Please keep this list synchronized with the emulator code!
**********************************************************
MCV = Model Category Value
------------------------------------------------------------
MCV Description
--------------------- Ovni (model=O) -----------------------
OHC Creates a new thread (punctual event)
OHx Begins the execution
OHp Pauses the execution
OHc Enters the cooling state (about to be paused)
OHw Enters the warming state (about to be running)
OHe Ends the execution
OAs Switches it's own affinity to the given CPU
OAr Remotely switches the affinity of the given thread
OB. Emits a burst event to measure latency
OU[ Enters a region which contain past events (HACK)
OU] Exits the region of past events (HACK)
2021-10-14 08:10:03 +02:00
-------------------- nOS-V (model=V) ----------------------
VTc Creates a new task (punctual event)
VTx Task execute
VTe Task end
VTp Task pause
VTr Task resume
VYc Task type create (punctual event)
VSr Receives a task from another thread (punctual event)
VSs Sends a task to another thread (punctual event)
VS@ Self-assigns itself a task (punctual event)
VSh Enters the hungry state, waiting for a task
VSf Is no longer hungry
VS[ Enters the scheduler server mode
VS] Ends the scheduler server mode
VU[ Starts to submit a task
VU] Ends the submission of a task
VMa Starts allocating memory
VMA Ends allocating memory
VMf Starts freeing memory
VMF Ends freeing memory
2021-10-14 08:10:03 +02:00
VAs Enters nosv_submit()
VAS Exits nosv_submit()
VAp Enters nosv_pause()
VAP Exits nosv_pause()
VAy Enters nosv_yield()
VAY Exits nosv_yield()
VAw Enters nosv_waitfor()
VAW Exits nosv_waitfor()
VAc Enters nosv_schedpoint()
VAC Exits nosv_schedpoint()
2021-10-14 08:10:03 +02:00
VHa Enters nosv_attach()
VHA Exits nosv_detach()
VHw Begins the execution as a worker
VHW Ends the execution as a worker
VHd Begins the execution as the delegate
VHD Ends the execution as the delegate
2021-10-14 08:10:03 +02:00
2021-12-03 16:24:41 +01:00
-------------------- NODES (model=D) ----------------------
2021-10-25 16:57:31 +02:00
2021-12-03 16:24:41 +01:00
DR[ Begins the registration of a task's accesses
DR] Ends the registration of a task's accesses
2021-10-25 16:57:31 +02:00
2021-12-03 16:24:41 +01:00
DU[ Begins the unregistration of a task's accesses
DU] Ends the unregistration of a task's accesses
2021-10-25 16:57:31 +02:00
2021-12-03 16:24:41 +01:00
DW[ Enters a blocking condition (waiting for an If0 task)
DW] Exits a blocking condition (waiting for an If0 task)
2021-10-25 16:57:31 +02:00
2022-06-03 12:48:22 +02:00
DI[ Begins the inline execution of an If0 task
2021-12-03 16:24:41 +01:00
DI] Ends the inline execution of an If0 task
2021-10-25 16:57:31 +02:00
2021-12-03 16:24:41 +01:00
DT[ Enters a taskwait
DT] Exits a taskwait
2021-10-25 16:57:31 +02:00
2021-12-03 16:24:41 +01:00
DC[ Begins the creation of a task
DC] Ends the creation of a task
2021-10-25 16:57:31 +02:00
2021-12-03 16:24:41 +01:00
DS[ Begins the submit of a task
DS] Ends the submit of a task
2021-10-25 16:57:31 +02:00
2021-12-03 16:24:41 +01:00
DP[ Begins the spawn of a function
DP] Ends the spawn of a function
2021-10-25 16:57:31 +02:00
-------------------- Kernel (model=K) ----------------------
KCO Is out of the CPU due to a context switch
KCI Is back in the CPU due to a context switch
2022-06-03 12:48:22 +02:00
-------------------- Nanos6 (model=6) ----------------------
2022-09-12 15:44:13 +02:00
6Tc Creates a new task
2022-06-03 12:48:22 +02:00
6Tx Task execute
6Te Task end
2022-09-05 20:17:56 +02:00
6Tp Task pause
6Tr Task resume
2022-06-03 12:48:22 +02:00
6Yc Task type create (punctual event)
2022-09-12 15:44:13 +02:00
6C[ Begins creating a new task
6C] Ends creating a new task
2022-09-05 20:17:56 +02:00
6S[ Enters the scheduler serving mode
6S] Ends the scheduler serving mode
6Sa Begins to submit a ready task via addReadyTask()
6SA Ends submitting a ready task via addReadyTask()
6Sp Begins to process ready tasks via processReadyTasks()
6SP Ends processing ready taska via processReadyTasks()
2022-06-03 12:48:22 +02:00
6Sr Receives a task from another thread (punctual event)
6Ss Sends a task to another thread (punctual event)
6S@ Self-assigns itself a task (punctual event)
2022-09-05 20:17:56 +02:00
6W[ Begins the worker body loop, looking for tasks
6W] Ends the worker body loop
6Wt Begins handling a task via handleTask()
6WT Ends handling a task via handleTask()
2022-09-12 15:44:13 +02:00
6Ww Begins switching to another worker via switchTo()
6WW Ends switching to another worker via switchTo()
6Wm Begins migrating the CPU via migrate()
6WM Ends migrating the CPU via migrate()
6Ws Begins suspending the worker via suspend()
6WS Ends suspending the worker via suspend()
6Wr Begins resuming another worker via resume()
6WR Ends resuming another worker via resume()
6Wg Enters the sponge mode
6WG Exits the sponge mode
2022-09-12 15:44:13 +02:00
6W* Signals another thread to wake up (punctual event)
2022-06-03 12:48:22 +02:00
6Pp Set progress state to Progressing
6Pr Set progress state to Resting
6Pa Set progress state to Absorbing
2022-06-03 17:21:43 +02:00
6U[ Starts to submit a task via submitTask()
6U] Ends the submission of a task via submitTask()
2022-06-03 12:48:22 +02:00
6F[ Begins to spawn a function via spawnFunction()
6F] Ends spawning a function
2022-06-03 12:48:22 +02:00
6t[ Begins running the task body
6t] Ends running the task body
6O[ Begins running the task body as taskfor collaborator
6O] Ends running the task body as taskfor collaborator
2022-06-03 12:48:22 +02:00
6Dr Begins the registration of a task's accesses
6DR Ends the registration of a task's accesses
6Du Begins the unregistration of a task's accesses
6DU Ends the unregistration of a task's accesses
6Bb Begins to block the current task via blockCurrentTask()
6BB Ends blocking the current task via blockCurrentTask()
2022-09-05 20:17:56 +02:00
6Bu Begins to unblock a task
6BU Ends unblocking a task
6Bw Enters taskWait()
6BW Exits taskWait()
6Bf Enters taskFor()
6BF Exits taskFor()
2022-09-05 20:17:56 +02:00
6He Sets itself as external thread
6HE Unsets itself as external thread
6Hw Sets itself as worker thread
6HW Unsets itself as worker thread
6Hl Sets itself as leader thread
6HL Unsets itself as leader thread
6Hm Sets itself as main thread
6HM Unsets itself as main thread
2022-09-06 10:28:55 +02:00
2022-09-12 15:44:13 +02:00
6Ma Begins allocating memory
6MA Ends allocating memory
6Mf Begins freeing memory
6MF Ends freeing memory
```