The nosv.can_breakdown attribute states if enough events for the breakdown model of nOS-V are enabled at runtime. It is used to ensure that breakdown traces have the progress events enabled along with others required for proper visualization of traces. The emulator will panic when the level is not enough, instead of relying on users to always remember to enable the correct level.
		
			
				
	
	
	
		
			31 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			31 KiB
		
	
	
	
	
	
	
	
Emulator events
This is a exhaustive list of the events recognized by the emulator. Built on Jun 13 2024.
Model nanos6
List of events for the model nanos6 with identifier 6 at version 1.1.0:
6Yc+(u32 typeid, str label)
- creates task type %{typeid} with label "%{label}"
 6Tc(u32 taskid, u32 typeid)
- creates task %{taskid} with type %{typeid}
 6Tx(u32 taskid)
- executes the task %{taskid}
 6Te(u32 taskid)
- ends the task %{taskid}
 6Tp(u32 taskid)
- pauses the task %{taskid}
 6Tr(u32 taskid)
- resumes the task %{taskid}
 6W[
- enters worker main loop, looking for tasks
 6W]
- leaves worker main loop, looking for tasks
 6Wt
- begins handling a task via handleTask()
 6WT
- ceases handling a task via handleTask()
 6Ww
- begins switching to another worker via switchTo()
 6WW
- ceases switching to another worker via switchTo()
 6Wm
- begins migrating the current worker to another CPU
 6WM
- ceases migrating the current worker to another CPU
 6Ws
- begins suspending the worker via suspend()
 6WS
- ceases suspending the worker via suspend()
 6Wr
- begins resuming another worker via resume()
 6WR
- ceases resuming another worker via resume()
 6Wg
- enters sponge mode (absorbing system noise)
 6WG
- leaves sponge mode (absorbing system noise)
 6W*
- signals another worker to wake up
 6Pp
- sets progress state to Progressing
 6Pr
- sets progress state to Resting
 6Pa
- sets progress state to Absorbing
 6C[
- begins creating a new task
 6C]
- ceases creating a new task
 6U[
- begins submitting a task via submitTask()
 6U]
- ceases submitting a task via submitTask()
 6F[
- begins spawning a function via spawnFunction()
 6F]
- ceases spawning a function via spawnFunction()
 6t[
- enters the task body
 6t]
- leaves the task body
 6O[
- begins running the task body as taskfor collaborator
 6O]
- ceases running the task body as taskfor collaborator
 6Ma
- starts allocating memory
 6MA
- stops allocating memory
 6Mf
- starts freeing memory
 6MF
- stops freeing memory
 6Dr
- begins registration of task dependencies
 6DR
- ceases registration of task dependencies
 6Du
- begins unregistration of task dependencies
 6DU
- ceases unregistration of task dependencies
 6S[
- begins scheduler serving mode
 6S]
- ceases scheduler serving mode
 6Sa
- begins submitting a ready task via addReadyTask()
 6SA
- ceases submitting a ready task via addReadyTask()
 6Sp
- begins processing ready tasks via processReadyTasks()
 6SP
- ceases processing ready tasks via processReadyTasks()
 6S@
- self assigns itself a task
 6Sr
- receives a task from another thread
 6Ss
- sends a task to another thread
 6Bb
- begins blocking the current task
 6BB
- ceases blocking the current task
 6Bu
- begins unblocking a task
 6BU
- ceases unblocking a task
 6Bw
- enters a task wait
 6BW
- leaves a task wait
 6Bf
- enters a wait for
 6BF
- leaves a wait for
 6He
- begins execution as external thread
 6HE
- ceases execution as external thread
 6Hw
- begins execution as worker
 6HW
- ceases execution as worker
 6Hl
- begins execution as leader
 6HL
- ceases execution as leader
 6Hm
- begins execution as main thread
 6HM
- ceases execution as main thread
 
Model nodes
List of events for the model nodes with identifier D at version 1.0.0:
DR[
- begins registering task accesses
 DR]
- ceases registering task accesses
 DU[
- begins unregistering task accesses
 DU]
- ceases unregistering task accesses
 DW[
- enters a blocking condition (waiting for an If0 task)
 DW]
- leaves a blocking condition (waiting for an If0 task)
 DI[
- begins the inline execution of an If0 task
 DI]
- ceases the inline execution of an If0 task
 DT[
- enters a taskwait
 DT]
- leaves a taskwait
 DC[
- begins creating a task
 DC]
- ceases creating a task
 DS[
- begins submitting a task
 DS]
- ceases submitting a task
 DP[
- begins spawning a function
 DP]
- ceases spawning a function
 
Model kernel
List of events for the model kernel with identifier K at version 1.0.0:
Model mpi
List of events for the model mpi with identifier M at version 1.0.0:
MUf
- enters MPI_Finalize()
 MUF
- leaves MPI_Finalize()
 MUi
- enters MPI_Init()
 MUI
- leaves MPI_Init()
 MUt
- enters MPI_Init_thread()
 MUT
- leaves MPI_Init_thread()
 MW[
- enters MPI_Wait()
 MW]
- leaves MPI_Wait()
 MWa
- enters MPI_Waitall()
 MWA
- leaves MPI_Waitall()
 MWs
- enters MPI_Waitsome()
 MWS
- leaves MPI_Waitsome()
 MWy
- enters MPI_Waitany()
 MWY
- leaves MPI_Waitany()
 MT[
- enters MPI_Test()
 MT]
- leaves MPI_Test()
 MTa
- enters MPI_Testall()
 MTA
- leaves MPI_Testall()
 MTy
- enters MPI_Testany()
 MTY
- leaves MPI_Testany()
 MTs
- enters MPI_Testsome()
 MTS
- leaves MPI_Testsome()
 MS[
- enters MPI_Send()
 MS]
- leaves MPI_Send()
 MSb
- enters MPI_Bsend()
 MSB
- leaves MPI_Bsend()
 MSr
- enters MPI_Rsend()
 MSR
- leaves MPI_Rsend()
 MSs
- enters MPI_Ssend()
 MSS
- leaves MPI_Ssend()
 MR[
- enters MPI_Recv()
 MR]
- leaves MPI_Recv()
 MRs
- enters MPI_Sendrecv()
 MRS
- leaves MPI_Sendrecv()
 MRo
- enters MPI_Sendrecv_replace()
 MRO
- leaves MPI_Sendrecv_replace()
 MAg
- enters MPI_Allgather()
 MAG
- leaves MPI_Allgather()
 MAr
- enters MPI_Allreduce()
 MAR
- leaves MPI_Allreduce()
 MAa
- enters MPI_Alltoall()
 MAA
- leaves MPI_Alltoall()
 MCb
- enters MPI_Barrier()
 MCB
- leaves MPI_Barrier()
 MCe
- enters MPI_Exscan()
 MCE
- leaves MPI_Exscan()
 MCs
- enters MPI_Scan()
 MCS
- leaves MPI_Scan()
 MDb
- enters MPI_Bcast()
 MDB
- leaves MPI_Bcast()
 MDg
- enters MPI_Gather()
 MDG
- leaves MPI_Gather()
 MDs
- enters MPI_Scatter()
 MDS
- leaves MPI_Scatter()
 ME[
- enters MPI_Reduce()
 ME]
- leaves MPI_Reduce()
 MEs
- enters MPI_Reduce_scatter()
 MES
- leaves MPI_Reduce_scatter()
 MEb
- enters MPI_Reduce_scatter_block()
 MEB
- leaves MPI_Reduce_scatter_block()
 Ms[
- enters MPI_Isend()
 Ms]
- leaves MPI_Isend()
 Msb
- enters MPI_Ibsend()
 MsB
- leaves MPI_Ibsend()
 Msr
- enters MPI_Irsend()
 MsR
- leaves MPI_Irsend()
 Mss
- enters MPI_Issend()
 MsS
- leaves MPI_Issend()
 Mr[
- enters MPI_Irecv()
 Mr]
- leaves MPI_Irecv()
 Mrs
- enters MPI_Isendrecv()
 MrS
- leaves MPI_Isendrecv()
 Mro
- enters MPI_Isendrecv_replace()
 MrO
- leaves MPI_Isendrecv_replace()
 Mag
- enters MPI_Iallgather()
 MaG
- leaves MPI_Iallgather()
 Mar
- enters MPI_Iallreduce()
 MaR
- leaves MPI_Iallreduce()
 Maa
- enters MPI_Ialltoall()
 MaA
- leaves MPI_Ialltoall()
 Mcb
- enters MPI_Ibarrier()
 McB
- leaves MPI_Ibarrier()
 Mce
- enters MPI_Iexscan()
 McE
- leaves MPI_Iexscan()
 Mcs
- enters MPI_Iscan()
 McS
- leaves MPI_Iscan()
 Mdb
- enters MPI_Ibcast()
 MdB
- leaves MPI_Ibcast()
 Mdg
- enters MPI_Igather()
 MdG
- leaves MPI_Igather()
 Mds
- enters MPI_Iscatter()
 MdS
- leaves MPI_Iscatter()
 Me[
- enters MPI_Ireduce()
 Me]
- leaves MPI_Ireduce()
 Mes
- enters MPI_Ireduce_scatter()
 MeS
- leaves MPI_Ireduce_scatter()
 Meb
- enters MPI_Ireduce_scatter_block()
 MeB
- leaves MPI_Ireduce_scatter_block()
 
Model ovni
List of events for the model ovni with identifier O at version 1.0.0:
OAr(i32 cpu, i32 tid)
- changes the affinity of thread %{tid} to CPU %{cpu}
 OAs(i32 cpu)
- switches it's own affinity to the CPU %{cpu}
 OB.
- emits a burst event to measure latency
 OHC(i32 cpu, u64 tag)
- creates a new thread on CPU %{cpu} with tag %#llx{tag}
 OHc
- enters the Cooling state (about to be paused)
 OHe
- ends the execution
 OHp
- pauses the execution
 OHr
- resumes the execution
 OHw
- enters the Warming state (about to be running)
 OHx(i32 cpu, i32 tid, u64 tag)
- begins the execution on CPU %{cpu} created from %{tid} with tag %#llx{tag}
 OCn(i32 cpu)
- informs there are %{cpu} CPUs
 OF[
- begins flushing events to disk
 OF]
- ceases flushing events to disk
 OU[
- enters unordered event region
 OU]
- leaves unordered event region
 
Model openmp
List of events for the model openmp with identifier P at version 1.1.0:
PBb
- begins plain barrier
 PBB
- ceases plain barrier
 PBj
- begins join barrier
 PBJ
- ceases join barrier
 PBf
- begins fork barrier
 PBF
- ceases fork barrier
 PBt
- begins tasking barrier
 PBT
- ceases tasking barrier
 PBs
- begins spin wait
 PBS
- ceases spin wait
 PIa
- begins critical acquiring
 PIA
- ceases critical acquiring
 PIr
- begins critical releasing
 PIR
- ceases critical releasing
 PI[
- begins critical section
 PI]
- ceases critical section
 PWd
- begins distribute
 PWD
- ceases distribute
 PWy
- begins dynamic for init
 PWY
- ceases dynamic for init
 PWc
- begins dynamic for chunk
 PWC
- ceases dynamic for chunk
 PWs
- begins static for
 PWS
- ceases static for
 PWe
- begins section
 PWE
- ceases section
 PWi
- begins single
 PWI
- ceases single
 PTa
- begins task allocation
 PTA
- ceases task allocation
 PTc
- begins checking task dependencies
 PTC
- ceases checking task dependencies
 PTd
- begins duplicating a task
 PTD
- ceases duplicating a task
 PTr
- begins releasing task dependencies
 PTR
- ceases releasing task dependencies
 PT[
- begins running a task
 PT]
- ceases running a task
 PTi
- begins running an if0 task
 PTI
- ceases running an if0 task
 PTs
- begins scheduling a task
 PTS
- ceases scheduling a task
 PTg
- begins a taskgroup
 PTG
- ceases a taskgroup
 PTt
- begins a taskwait
 PTT
- ceases a taskwait
 PTw
- begins waiting for taskwait dependencies
 PTW
- ceases waiting for taskwait dependencies
 PTy
- begins a taskyield
 PTY
- ceases a taskyield
 PA[
- enters the attached state
 PA]
- leaves the attached state
 PMi
- begins microtask internal
 PMI
- ceases microtask internal
 PMu
- begins microtask user code
 PMU
- ceases microtask user code
 PH[
- begins worker loop
 PH]
- ceases worker loop
 PCf
- begins fork call
 PCF
- ceases fork call
 PCi
- begins initialization
 PCI
- ceases initialization
 
Model tampi
List of events for the model tampi with identifier T at version 1.0.0:
TCi
- starts issuing a non-blocking communication operation
 TCI
- stops issuing a non-blocking communication operation
 TGc
- starts checking pending requests from the global array
 TGC
- stops checking pending requests from the global array
 TLi
- enters the library code at an API function
 TLI
- leaves the library code at an API function
 TLp
- enters the library code at a polling function
 TLP
- leaves the library code at a polling function
 TQa
- starts adding a ticket/requests to a queue
 TQA
- stops adding a ticket/requests to a queue
 TQt
- starts transferring tickets/requests from queues to global array
 TQT
- stops transferring tickets/requests from queues to global array
 TRc
- starts processsing a completed request
 TRC
- stops processsing a completed request
 TRt
- starts testing a single request with MPI_Test
 TRT
- stops testing a single request with MPI_Test
 TRa
- starts testing several requests with MPI_Testall
 TRA
- stops testing several requests with MPI_Testall
 TRs
- starts testing several requests with MPI_Testsome
 TRS
- stops testing several requests with MPI_Testsome
 TTc
- starts creating a ticket linked to a set of requests and a task
 TTC
- stops creating a ticket linked to a set of requests and a task
 TTw
- starts waiting for a ticket completion
 TTW
- stops waiting for a ticket completion
 
Model nosv
List of events for the model nosv with identifier V at version 2.3.0:
VTc(u32 taskid, u32 typeid)
- creates task %{taskid} with type %{typeid}
 VTC(u32 taskid, u32 typeid)
- creates parallel task %{taskid} with type %{typeid}
 VTx(u32 taskid, u32 bodyid)
- executes the task %{taskid} with bodyid %{bodyid}
 VTe(u32 taskid, u32 bodyid)
- ends the task %{taskid} with bodyid %{bodyid}
 VTp(u32 taskid, u32 bodyid)
- pauses the task %{taskid} with bodyid %{bodyid}
 VTr(u32 taskid, u32 bodyid)
- resumes the task %{taskid} with bodyid %{bodyid}
 VYc+(u32 typeid, str label)
- creates task type %{typeid} with label "%{label}"
 VSr
- receives a task from another thread
 VSs
- sends a task to another thread
 VS@
- self assigns itself a task
 VSh
- enters the hungry state, waiting for work
 VSf
- is no longer hungry
 VS[
- enters scheduler server mode
 VS]
- leaves scheduler server mode
 VU[
- starts submitting a task
 VU]
- stops submitting a task
 VMa
- starts allocating memory
 VMA
- stops allocating memory
 VMf
- starts freeing memory
 VMF
- stops freeing memory
 VAr
- enters nosv_create()
 VAR
- leaves nosv_create()
 VAd
- enters nosv_destroy()
 VAD
- leaves nosv_destroy()
 VAs
- enters nosv_submit()
 VAS
- leaves nosv_submit()
 VAp
- enters nosv_pause()
 VAP
- leaves nosv_pause()
 VAy
- enters nosv_yield()
 VAY
- leaves nosv_yield()
 VAw
- enters nosv_waitfor()
 VAW
- leaves nosv_waitfor()
 VAc
- enters nosv_schedpoint()
 VAC
- leaves nosv_schedpoint()
 VAa
- enters nosv_attach()
 VAA
- leaves nosv_attach()
 VAe
- enters nosv_detach()
 VAE
- leaves nosv_detach()
 VAl
- enters nosv_mutex_lock()
 VAL
- leaves nosv_mutex_lock()
 VAt
- enters nosv_mutex_trylock()
 VAT
- leaves nosv_mutex_trylock()
 VAu
- enters nosv_mutex_unlock()
 VAU
- leaves nosv_mutex_unlock()
 VAb
- enters nosv_barrier_wait()
 VAB
- leaves nosv_barrier_wait()
 VHa
- enters nosv_attach()
 VHA
- leaves nosv_dettach()
 VHw
- begins execution as worker
 VHW
- ceases execution as worker
 VHd
- begins execution as delegate
 VHD
- ceases execution as delegate
 VPp
- sets progress state to Progressing
 VPr
- sets progress state to Resting
 VPa
- sets progress state to Absorbing