This chapter provides a “dictionary” of the events collected by WindView. It lists each event by object type, providing the following information for each:
the event's icon
the possible causes of the event
the possible process state effects that can result from the event
the information collected about the event (That is, the information displayed when you drag the event's icon into the Event Inspector window; see “Examining Data” for details on using this window.)
Suppose you are viewing an event log with the WindView GUI and you see the sigwrapper event icon as shown in Figure 4-1.
Look in the Legend window (see “Understanding the View Graph”) to determine that this is the sigwrapper event icon.
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:
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. |
Possible causes: | A hardware interrupt occurred for which there is an associated ISR. | |
| Process state effects: |
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. |
Possible causes: | The ISR finished executing. | |
| Process state effects: |
|
![]() | 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. |
Possible causes: |
| |
| Process state effects: |
|
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. |
Possible causes: |
| |
| Process state effects: |
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. |
Possible causes: |
| |
| Process state effects: |
|
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. |
Possible causes: |
| |
| Process state effects: |
|
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. |
Possible causes: |
| |
| Process state effects: |
|
![]() | 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.