Rodrigo Arias
247ea7e7c3
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