This chapter covers the following topics:
“What Is IRIXview?” defines concepts important for this product.
“Starting IRIXview” describes how to start running the product.
“Other Sources of Information” gives pointers to related documentation.
“IRIXview Architecture” explains how pieces of IRIXview fit together.
The IRIXview product is a logic analyzer for a software system. A software system (consisting of the IRIX operating system and your applications) involves complex interactions among processes, system objects, and interrupts. Interactions must occur within certain time constraints, often with resolutions of microseconds or finer.
Traditional tools for debugging and benchmarking software systems have included source code debuggers and run profilers. These types of tools can provide much useful information about a system. However, they provide only a static picture of very dynamic situations. What developers need is a facility for understanding these highly dynamic interactions in a visual way—a way to look “under the hood” of their software system. IRIXview can provide this facility.
IRIXview enables users to visualize the complex activities of their software system, making it possible to:
understand system behavior
detect race conditions, deadlocks, processor starvation, and other problems relating to process interaction
determine application responsiveness and performance
recognize cyclic patterns in the application
The interaction of the processes, objects, signals, and interrupts in a software system can result in context switches. The term context switch refers to an operation performed by the IRIX scheduler, which switches one thread of execution for another. IRIXview permits the user to collect, display, and inspect information on the state of each process in the system and the events that lead to a context switch.
To run IRIXview, the irixview.sw.irixview product image must be installed, and a FlexLM license must be available for the product. See http://www.sgi.com/Support/Licensing/ for information about licensing.
IRIXview lets you collect and analyze event data for target IRIX systems. Examples of events include process or thread creation and termination, system calls, and system interrupts, including scheduler clock ticks. IRIXview displays events by context or by CPU. A context is any thread that can execute on a processor, including user programs, system threads, interrupts, and the kernel's idle thread.
A typical work flow for using IRIXview includes the following steps:
Start IRIXview by entering the irixview command. See “Starting IRIXview” for startup instructions and a description of the IRIXview main window.
Load event data. This is accomplished by collecting event data from a specified target system using IRIXview, or by opening a file with saved event data (such a file is called an event log) previously collected by IRIXview, rtmon-client, or par. See Chapter 2, “Collecting Event Data.”
Open a view graph to display the event data. The graph shows you the event and state data of each context or CPU over a given time range. See Chapter 3, “Displaying Event Data.”
Analyze the data. Zoom in on specific time periods to see the fine timing changes of events and states. Open the Event Inspector to examine text lists of events for a given time range, or drag and drop events into the Event Inspector window to look at detailed information. Using other windows, view summaries of system calls or scheduler activities. See Chapter 4, “Inspecting and Analyzing Data.”
IRIXview consists of two components: one resides on the target (the system where events are being collected), and the other on the monitor host (the system running IRIXview). Although Figure 1-1 shows two systems, target and monitor are often the same system.
Events are logged to a buffer on the target system. When this buffer starts to fill up, the contents of the buffer are passed to the host by the rtmond daemon. The IRIX kernel's instrumentation is highly optimized and operates with minimal intrusion on the system.
When you start the event collection process (either using the Start button in the Target window, or with the rtmon_client command), the instrumented IRIX kernel tags events with a high-resolution timestamp. The events are then displayed in the Context View graph along a timeline showing when they occurred, based on these timestamps. You can see the exact timestamp for any event; for details, see “Selecting an Event”.
The timestamp driver's resolution is hardware dependent, but is always better than one microsecond resolution.
The IRIXview host component (that is, the GUI) is an X application that runs as a normal iser process under IRIX. It receives event data from the target system, processes that data, and displays pieces of it in a graphical format. The default target-to-host communication mechanism is TCP/IP.
Once event data has been collected, the information may be navigated and analyzed using the IRIXview Context View or CPU View graph windows. For details on using the Context Graph, see “Using the Context View Graph”. For details on using the CPU Graph, see “Using the CPU View Graph”.
In some situations you may find it more convenient and less intrusive to collect the event data in a file on the target host, for later analysis and display. For example, you may wish to collect data at a remote site for later analysis at a computer laboratory. This may be accomplished with the rtmon-client or par commands, described in “Using rtmon-client or par to Collect Event Data”.
This section shows how to start irixview, describes the main window menus, including help facilities, and tells how to exit the application.
To start IRIXview, enter the irixview command from an shell window such as a winterm; see winterm(1). This brings up the IRIXview main window, as shown in Figure 1-2.
% irixview |
The IRIXview main window contains the following pulldown menus:
Leave the main window open whenever you are running IRIXview—the message area provides feedback on most operations, and commands in the menu bar are useful for displaying and examining event data.
To use pulldown menus, you do not necessarily need to click the mouse. Keyboard shortcuts are available: press the Alt key and a letter underlined in the main menu bar; with the menu displayed, pick a command from it by typing the underlined letter. For example, to exit IRIXview, press Alt+F and with the File menu displayed, press Q.
The Help Contents window offers a set of writeups on using IRIXview, including an introductory screen describing how to get started.
Aside from the introductory online help, the Legend windows provide useful reference for the many symbols displayed by IRIXview. See either “Context Legend Window” or “CPU Legend Window” for more information.
To exit IRIXview at any time, choose File > Quit. The IRIXview main window and all other IRIXview windows are removed from the screen.
![]() | Note: When you exit, IRIXview does not prommp you to save event data. To save before exiting, follow instructions in the section “Save Event File Window”. |
IRIXview offers a graphical interface to the data output from the rtmond server process, which collects system and user events. You can think of IRIXview as a way to visualize detailed system activity. IRIXview accomplishes some of the same things as rtmon-client, except IRIXview has many added features. For example, graphs allow you to display, select, and analyze event data. For more information, see the reference pages for the related programs rtmond and rtmon-client, rtmond(1) and rtmon-client(1).
The sar command, a standard System V utility, offers overall system activity reporting. See sar(1) for more information. The par command, a custom IRIX utility, provides specific information about a set of specific processes. See par(1) for more information.