Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with
the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
/usr/sbin/intrstat [-c cpulist | -C processor_set_id] [-T u | d ] [-x opt[=val]] [interval [count]]
The intrstat utility gathers and displays run-time interrupt statistics. The output is a table of device names and CPU IDs, where each row of the table denotes a device, and each column of the table denotes a CPU. Each cell in the table contains both the raw number of interrupts for the given device on the given CPU, and the percentage of absolute time spent in that device's interrupt handler on that CPU.
The device name is given in the form of {name}#{instance}. The name is the normalized driver name, and typically corresponds to the name of the module implementing the driver. See ddi_driver_name(9F). Many Sun-delivered drivers have their own manual pages. See Intro(7).
If standard output is a terminal, the table contains as many columns of data as can fit within the terminal width. If standard output is not a terminal, the table contains at most four columns of data. By default, data is gathered and displayed for all CPUs. If the data cannot fit in a single table, it is printed across multiple tables. The set of CPUs for which data is displayed can be optionally specified with the -c or -C option.
By default, intrstat displays data once per second and runs indefinitely. Both of these behaviors can be optionally controlled with the interval and count parameters, respectively. See OPERANDS.
Because intrstat uses dynamic discovery, it reports only on devices that raise interrupts while the command is running. Any devices that are silent while intrstat is running are not displayed.
intrstat induces a small system-wide performance degradation. As a result, only the super-user can run intrstat by default. The Solaris Dynamic Tracing Guide explains how administrators can grant privileges to other users to permit them to run intrstat.
The following options are supported:
-c cpulist
Displays data for the CPUs specified by cpulist. cpulist can be a single processor ID (for example, 4), a range of processor IDs (for example, 4-6), or a comma separated list of processor IDs or processor ID ranges (for example, 4,5,6 or 4,6-8).
-C processor_set_id
Displays data for the CPUs in the processor set specified by processor_set_id. intrstat modifies its output to always reflect the CPUs in the specified processor set. If a CPU is added to the set, intrstat modifies its output to include the added CPU. If a CPU is removed from the set, intrstat modifies its output to exclude the removed CPU. At most one processor set can be specified.
-T u | d
Display a time stamp. Specify u for a printed representation of the internal representation of time. See time(2). Specify d for standard date format. See date(1).
-x opt[=val]
Enable or modify a DTrace runtime option or D compiler option. The list of options is found in the Solaris Dynamic Tracing Guide. A boolean option is enabled by specifying its name. Options with values are set by separating the option name and value with an equal sign (=)
The following operands are supported:
count
Indicates the number of intervals to execute before exiting.
interval
Indicates the number of seconds to be executed before exiting.
Example 1 Using intrstat Without Options
Without options, intrstat displays a table of trap types and CPUs. At most, four columns can fit in the default terminal width. If there are more than four CPUs, multiple tables are displayed.
The following example runs intrstat on a uniprocessor Intel IA/32-based laptop:
example# intrstat device | cpu0 %tim -----------------+--------------- ata#0 | 166 0.4 ata#1 | 0 0.0 audioi810#0 | 6 0.0 i8042#0 | 281 0.7 iprb#0 | 6 0.0 uhci#1 | 6 0.0 uhci#2 | 6 0.0 device | cpu0 %tim -----------------+--------------- ata#0 | 161 0.5 ata#1 | 0 0.0 audioi810#0 | 6 0.0 i8042#0 | 303 0.6 iprb#0 | 6 0.0 uhci#1 | 6 0.0 uhci#2 | 6 0.0 ...
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | See below. |
The command-line syntax is Evolving. The human-readable output is Unstable.
dtrace(1M), trapstat(1M), attributes(5), Intro(7), ddi_driver_name(9F)
Solaris Dynamic Tracing Guide