Chapter 4. Event Dictionary

This chapter provides a “dictionary” of the events collected by WindView. It lists each event by object type, providing the following information for each:

Using the Event Dictionary

Figure 4-1. sigwrapper Icon


This section provides tips for using the event dictionary.

  1. Suppose you are viewing an event log with the WindView GUI and you see the sigwrapper event icon as shown in Figure 4-1.

  2. Look in the Legend window (see “Understanding the View Graph”) to determine that this is the sigwrapper event icon.

  3. Using the online help (see “Using Help”) or this event dictionary chapter, you can look up the information on what can cause a sigwrapper event, what effect on process state it may have, and what information is collected for a sigwrapper event, as shown in Figure 4-2:

    Figure 4-2. Sample Event Dictionary Page


Most of the elements that are called out on the sample page are self-explanatory, with the possible exception of the “Information collected” section.

The event table describes the information that is logged for a particular event.

Looking at the sample sigwrapper event dictionary page above, you see the context (the process, ISR, or idle loop in which the event occurred); eventName; taskId; priority; you also see that the timeStamp is logged. (For information on starting event logging, see Chapter 2, “Collecting Event Data.”)

For example, if you drag the sigwrapper icon into the Event Inspector window, you see something like this:

Time		 : 0.00195
Context		 : t4 (0xf90f6c) {77}
sigwrapper (10029)
signo		 : 0xe

This provides the following information:

  • Time indicates the time (in seconds) since tracing began (0.0195).

  • Context indicates the process (t4), process ID (0xe), and unique event ID (77)[1] .

  • A sigwrapper event occurred (internal event type #10029).


Note: If an invalid parameter is passed to a routine, an event icon may not appear, depending on whether the error was detected before or after event logging occurs. In particular, if an invalid object ID is passed to a routine, the event icon will not appear.


Event Dictionary

ISR

intEnt—Entry to ISR

Figure 4-3. intEnt Icon


Possible causes:
 

A hardware interrupt occurred for which there is an associated ISR.

Process state effects: 


If the interrupt occurs in the context of an executing process, the process is displayed as making a transition to the ready state when the ISR starts executing.

In IRIX, there is a single global interrupt entry point for each processor. With WindView for IRIX, this global entry point appears on the WindView graph as interrupt 0 (ProcX INT0). All interrupts received by a processor pass through this global entry point. Each interrupt may then be further qualified by other kernel events that appear on the WindView graph as additional interrupts. A description of interrupts is provided in Table 4-1.


Note: The display of this icon is suppressed by default; to display it, toggle the Interrupts button in the Display Events/States window.

The table below presents the information collected for the event intEnt

Event Parameter

Sample Data

Description

timeStamp

Time : 0.669146

The time at which the event occurred.

context

Context : INT 3 (0x3) {63}

The context in which the event occurred.

eventName

intEnt-3 (105)

The name and INT level of the event associated with this icon; the internal event number = 102 + INT number.

The following interrupts are identified by WindView for IRIX. Each interrupt is delineated by an interrupt entry and interrupt exit timestamp.

Table 4-1. Interrupt Level Descriptions

Interrupt Level

Description

Probable Cause

INT 0

Interrupt qualifier

All interrupts that occur under IRIX “pass through” this level. Some interrupts are not further qualified by WindView (for example, vsync and vme interrupts) and appear at this level only.

INT 1

Frame Scheduler Interrupt

This is a further qualified version of CC counter interrupt (see INT 7) indicating that the IRIX REACT/Pro™ Frame Scheduler has interrupted the processor.

INT 5

Frame Scheduler yield

Not actually an IRIX interrupt, this level indicates that a user process has called either the frs_yield() function or the schedctl() (MPTS_FRS_YIELD) system call.

INT 6

CPU tick interrupt

The IRIX scheduler interrupts each processor every 10 milliseconds. IRIX uses this interrupt to perform scheduling processes and other housekeeping functions.

INT 7

CC counter interrupt

An event timeout interrupt, either from expiration of a kernel-initiated timer or a user-initiated timer (ITIMER).

INT 8

Profiler interrupt

An interrupt initiated from the IRIX profiler (see prof(1)).

INT 9

Group interrupt

Designates interrupt occurring on IRIX multiprocessor systems. Group interrupts are seen when multiple Frame Schedulers are synchronized across multiple processors.

INT 11

Inter-processor interrupts

One processor has interrupted another based on some action initiated by the first processor (for example, TLB flush, TLB fault, and so forth).

INT 12

Network interrupts

A network interrupt has occurred from an Ethernet, FDDI, or ATM interface.


intExit—Exit from ISR

Figure 4-4. IntExit Icon


Possible causes:
 

The ISR finished executing.

Process state effects: 


When this ISR finishes executing, control returns to the interrupted context.


Note: The display of this icon is suppressed by default; to display it, toggle the Interrupts button in the Display Events/States window.

The table below presents the information collected for the event intExit:

Event Parameter

Sample Data

Description

timeStamp

Time : 0.671482

The time at which the event occurred.

context

Context : INT 5 (0x5) {65}

The context in which the event occurred.

eventName

intExit (101)

The name of the event associated with this icon.


Signal

sigwrapper—Entry to signal handler

Figure 4-5. sigwrapper Icon


Possible causes:
 

  • The application code or an ISR sent a signal with the kill() or the sigqueue() routine and a signal handler was entered.

  • The application code sent a signal with the raise() routine and a signal handler was entered.

Process state effects: 


The signalled process is interrupted and the signal handler runs in that process' context.

The table below presents the information collected for the event sigwrapper:

Event Parameter

Sample Data

Description

timeStamp

Time : 0.00195

The time at which the event occurred.

context

Context : t4 (0xf90f6c) {77}

The context in which the event occurred.

eventName

sigwrapper (10029)

The name of the event associated with this icon.

signo

signo : 0xe

The signal number.


kill—Send a signal to a process

Figure 4-6. kill Icon


Possible causes:
 

  • Application code or an ISR sent a signal to the specified process with the kill() or sigqueue() function.

  • Application code sent a signal to the calling process with the raise() function.

Process state effects: 


A process receives a pending signal the next time the process exits from the kernel domain. For most signals, this could occur:

  • when the process is dispatched after a wait or preemption

  • upon return from some system call

  • upon return from the kernel's usual 10 millisecond tick interrupt

  • at the start of a minor frame, under the Frame Scheduler

SIGALRM is delivered as soon as the kernel is ready to return to user processing after the timer interrupt, to preserve timer accuracy. Thus, for a process that is ready to run, in a processor that has not been made nonpreemptive, normal signal latency is at most 10 milliseconds and SIGALRM latency is less. However, when the receiving process is not ready to run, or when there are competing processes with superior priorities, the delivery of a signal is delayed until the next time the receiving process is scheduled.

The table below presents the information collected for the event kill:

Event Parameter

Sample Data

Description

timeStamp

Time : 0.1530

The time at which the event occurred.

context

Context : t2 (0x3dd918) {30}

The context in which the event occurred.

eventName

kill (10027)

The name of the event associated with this icon.

taskId

taskId : 0xf90

The PID of the process to receive the signal.

signo

signo : 0x1e

The signal number.


Processes

processDelete—Delete a process

Figure 4-7. processDelete Icon


Possible causes:
 

  • The system or application code received a signal with the action to terminate the process.

  • The system or application code called the exit() function.

Process state effects: 


If the routine is successful, the specified process is terminated. If the executing process kills itself, a context switch occurs.

The table below presents the information collected for the event processDelete:

Event Parameter

Sample Data

Description

timeStamp

Time : 0.09537

The time at which the event occurred.

context

Context : tShell (0x3a468c) {82}

The context in which the event occurred.

eventName

taskDelete (10001)

The name of the event associated with this icon.

safeCnt

Not applicable for IRIX.

Not applicable for IRIX.

taskId

taskId : 0x38b

The PID of the process to delete.


Unknown

unknown—Unknown event

Figure 4-8. unknown Icon


Possible causes:
 

  • WindView has received an event that it does not recognize.

Process state effects: 


Indeterminate.

The table below presents the information collected for the event unknown:

Event Parameter

Sample Data

Description

UnknownId

Unknown event id : –25437

The ID of the event.


User Event

defaultUser—Display user-specified event

Figure 4-9. defaultUser Icon


Possible causes:
 

  • The application code called the rtmon_log_user_tstamp() function.

Process state effects: 


None.


Note: The icon shown above is the default user event icon. You can design your own; see “Creating Icons for User Events”.

The table below presents the information collected for the event defaultUser:
Other information is collected based on the passing of parameters to rtmon_log_user_tstamp (see “Adding Timestamps to Your Programs” for more information).

Event Parameter

Sample Data

Description

timeStamp

Time : 9.672774

The time at which the event occurred.

context

Context : t1 (0x3a118c) {40}

The context in which the event occurred.

userEventId

User event 2

The name and number of the user event.

address

Address : 0x1a644

The address at which the eventpoint was set.

Many IRIX kernel events are shown as “user” events—or, more accurately, user event numbers above 20000 are reserved for kernel events. These events are unique to WindView for IRIX and are described in Table 4-2 (in the following table, IRIX REACT/Pro Frame Scheduler is designated as FRS for convenience).

Table 4-2. User Event Numbers Above 20000

Event Number

Description

Possible Cause

20000

Undefined system event

An event (timestamp) of an unknown type was generated from the IRIX kernel.

20001

Undefined daemon event

An event (timestamp) of an unknown type was generated from an IRIX daemon.

20002

FRS dispatch

The FRS chooses a new process to run, or idles the processor if no other FRS processes are ready to run.

20003

FRS yield

A user process has called either the frs_yield() function or the schedctl (MPTS_FRS_YIELD) system call. This event generally appears with INT 5.

20004

FRS fatal frame overrun

The FRS has incurred a frame overrun (indicates that a process failed to yield in a minor frame) and there is no recovery mechanism in place.

20005

Interrupt qualifier

An interrupt has been received by the processor and is being qualified. (This event number may display as 5 in some version of WindView for IRIX.)

20008

FRS frame underrun

The FRS has incurred a frame underrun (indicates that a process should have been dispatched in a minor frame and was not). Qualifier #2 returns the current number of underruns.

20009

FRS frame overrun

The FRS has incurred a frame overrun (indicates that a process failed to yield in a minor frame). This event is accompanied with either event 20010, 20011, 20012, or 20013. Qualifier #2 returns the current number of overruns.

20010

FRS no recovery

No recovery mechanism is in place upon an overrun condition (this event is always accompanied by event 20009).

20011

FRS inject frame

An FRS minor frame has been injected as the recovery mechanism for a frame overrun occurrence (this event is always accompanied by event 20009).

20012

FRS stretch frame

An FRS minor frame has been stretched as the recovery mechanism for a frame overrun occurrence (this event is always accompanied by event 20009).

20013

FRS steal frame

An FRS minor frame has stolen time from an adjacent frame as the recovery mechanism for a frame overrun occurrence (this event is always accompanied by event 20009).

20014

FRS maximum errors

The FRS has received the maximum number of allowable errors (overruns or underruns) permitted by the application or program. This event causes the FRS to terminate.

20015

Dropped timestamps

In some extreme circumstances, the rtmond daemon issues this event to indicate that timestamps have been dropped from the event stream (this could occur, for example, when events are being generated faster than they can be saved).

20016

FRS start of major frame

Designates the start of a Frame Scheduler major frame.

20017

FRS start of minor frame

Designates the start of a Frame Scheduler minor frame.



[1] A unique event ID is assigned to each event in the log. This is to differentiate between, for example, a process of a particular ID that is deleted and a new process that is spawned with the deleted process's ID.