215 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			215 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# Emulator events
 | 
						|
 | 
						|
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.
 | 
						|
 | 
						|
```txt
 | 
						|
**********************************************************
 | 
						|
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)
 | 
						|
 | 
						|
-------------------- 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
 | 
						|
 | 
						|
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()
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
-------------------- TAMPI (model=T) ----------------------
 | 
						|
 | 
						|
TS[	Enters MPI_Send()
 | 
						|
TS]	Exits MPI_Send()
 | 
						|
 | 
						|
TR[	Enters MPI_Recv()
 | 
						|
TR]	Exits MPI_Recv()
 | 
						|
 | 
						|
Ts[	Enters MPI_Isend()
 | 
						|
Ts]	Exits MPI_Isend()
 | 
						|
 | 
						|
Tr[	Enters MPI_Irecv()
 | 
						|
Tr]	Exits MPI_Irecv()
 | 
						|
 | 
						|
TV[	Enters MPI_Wait()
 | 
						|
TV]	Exits MPI_Wait()
 | 
						|
 | 
						|
TW[	Enters MPI_Waitall()
 | 
						|
TW]	Exits MPI_Waitall()
 | 
						|
 | 
						|
-------------------- OpenMP (model=M) ----------------------
 | 
						|
 | 
						|
MT[	Task begins
 | 
						|
MT]	Task ends
 | 
						|
 | 
						|
MP]	Parallel region begins
 | 
						|
MP[	Parallel region ends
 | 
						|
 | 
						|
-------------------- NODES (model=D) ----------------------
 | 
						|
 | 
						|
DR[	Begins the registration of a task's accesses
 | 
						|
DR]	Ends the registration of a task's accesses
 | 
						|
 | 
						|
DU[	Begins the unregistration of a task's accesses
 | 
						|
DU]	Ends the unregistration of a task's accesses
 | 
						|
 | 
						|
DW[	Enters a blocking condition (waiting for an If0 task)
 | 
						|
DW]	Exits a blocking condition (waiting for an If0 task)
 | 
						|
 | 
						|
DI[	Begins the inline execution of an If0 task
 | 
						|
DI]	Ends the inline execution of an If0 task
 | 
						|
 | 
						|
DT[	Enters a taskwait
 | 
						|
DT]	Exits a taskwait
 | 
						|
 | 
						|
DC[	Begins the creation of a task
 | 
						|
DC]	Ends the creation of a task
 | 
						|
 | 
						|
DS[	Begins the submit of a task
 | 
						|
DS]	Ends the submit of a task
 | 
						|
 | 
						|
DP[	Begins the spawn of a function
 | 
						|
DP]	Ends the spawn of a function
 | 
						|
 | 
						|
-------------------- 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
 | 
						|
 | 
						|
-------------------- Nanos6 (model=6) ----------------------
 | 
						|
 | 
						|
6Tc	Creates a new task
 | 
						|
6Tx	Task execute
 | 
						|
6Te	Task end
 | 
						|
6Tp	Task pause
 | 
						|
6Tr	Task resume
 | 
						|
 | 
						|
6Yc	Task type create (punctual event)
 | 
						|
 | 
						|
6C[	Begins creating a new task
 | 
						|
6C]	Ends creating a new task
 | 
						|
 | 
						|
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()
 | 
						|
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)
 | 
						|
 | 
						|
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()
 | 
						|
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()
 | 
						|
6W*	Signals another thread to wake up (punctual event)
 | 
						|
 | 
						|
6U[	Starts to submit a task via submitTask()
 | 
						|
6U]	Ends the submission of a task via submitTask()
 | 
						|
 | 
						|
6F[	Begins to spawn a function via spawnFunction()
 | 
						|
6F]	Ends spawning a function
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
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()
 | 
						|
6Bu	Begins to unblock a task
 | 
						|
6BU	Ends unblocking a task
 | 
						|
6Bw	Enters taskWait()
 | 
						|
6BW	Exits taskWait()
 | 
						|
6Bf	Enters taskFor()
 | 
						|
6BF	Exits taskFor()
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
6Ma	Begins allocating memory
 | 
						|
6MA	Ends allocating memory
 | 
						|
6Mf	Begins freeing memory
 | 
						|
6MF	Ends freeing memory
 | 
						|
```
 |