pginfo - display information about processor groups
pginfo [-T] [-p] [ -v] [-r string] [ -R string] [pg ... | -c processor_id ...]
pginfo -s [-v] [ -r string] [-R string] [pg ... | -c processor_id ...]
pginfo -c | -I [ -r string] [-R string] [pg ... | -c processor_id ...]
The pginfo displays information about the Processor Group (PG) hierarchy, its contents, and its characteristics. A PG is a set of CPUs that are grouped together by a common characteristic.
PGs are used by the operating system to represent the CPUs that share performance relevant hardware such as the execution pipelines, caches, and so forth. These PGs are organized into a hierarchy that models the processor topology of the machine. In this hierarchy, each CPU (strand) has a leaf PG that represents the CPUs that share the most hardware with it. Each successive ancestor of the leaf PG shares progressively less hardware with the CPU until the root PG is reached. The root PG contains all of the CPUs in the system and represents the group of CPUs sharing the least hardware with each other. (See EXAMPLES below for an example of PG hierarchy.)
If a machine does not have any performance-relevant hardware sharing relationships, then pginfo displays only a root PG that contains all of the CPUs in the system.
By default, pginfo displays information about each PG in the system, including its PG ID, sharing relationship, and online and offline CPUs. It displays the PGs in depth first order by default and uses indentation to help show how the PGs are related to each other (see EXAMPLES below).
You can specify options to:
Display the PG hierarchy graphically
List the PG sharing relationships that exist on the running system
Give current PG utilization information, specifying PGs of interest by PG ID, CPU ID, or sharing relationship
Specify that only CPU or PG IDs be displayed
In addition, there is a –p option to show which PGs contain the CPUs that correspond to the CPUs with a common physical relationship such as system, chip, and core. These physical relationships describe the physical characteristics of the CPUs and might or might not encapsulate performance-relevant processor sharing relationships.
If the system configuration repeatedly changes when pginfo is obtaining a snapshot of system data, pginfo displays an error message and terminates with exit status 1.
The following options are supported:
Interpret arguments as processor IDs and display only information about PGs that contain the specified processors.
When used with the –T option, this option limits the PG hierarchy displayed to include only the lineage of each of the specified CPUs. This option cannot be used when specifying PGs of interest by PG ID.
Display only CPU IDs for all CPUs belonging to the PGs. This option cannot be used at the same time as the –I option.
Display short help message and exit with exit status 0.
Display only PG IDs for the PGs. This option cannot be used at the same time as the –C option.
Display the physical relationship that corresponds to a PGs. If a PG has the same CPUs as the whole system, a processor core, or a chip, system, core, or chip will be displayed along with the corresponding ID, as appropriate, after the sharing relationship of the PG in square brackets (“”).
Display only information about PGs with a sharing relationship name that matches any of the specified strings.
Each specified string can be a whole relationship name or a portion of one or more relationship names and the string matching is case-insensitive. The possible relationship names are in the list of sharing relationships that the –s option displays.
You can specify multiple –r options, which results in matching all PGs with a relationship name that contain any of the specified strings. When used with the –T option, this option limits the PG hierarchy displayed to include only the lineage of each of the PGs with the specified relationship.
Display only information about PGs with a sharing relationship name other than the one(s) specified.
String matching is the same as described above for the –r option. Multiple –R options can be entered.
Display all sharing relationships supported on the running system for the specified PGs. The –v option can be used with this option to get the list of PGs for each sharing relationship.
In the resulting hierarchy, the lineage of each CPU (hardware strand) is arranged from the PGs that share the most hardware in common with the CPU to the PGs that share the least with the CPU. If any CPUs, PGs, or relationships of interest are specified, the resulting PG hierarchy is limited to the lineages of the PGs with the specified CPUs, PGs, or relationships in the PG hierarchy.
Verbose mode. Display additional information about PGs. When used without -s, -C, or -I, it is equivalent to giving the -T and -p options together at the same time. When used with the -s option, it gives the list of PGs for each sharing relationship.
The following operands can be given on the command line by specifying one or more of their corresponding IDs or the keyword all. Multiple IDs can be specified as a space-separated list (for example, 1 3), a range of numbers (for example, 5-8), or both (for example, 1 3 5-8 13-16). PGs and CPUs cannot be specified at the same time.
PGs of interest can be specified on the command line by PG ID.
When the –c option is entered, CPUs of interest can be specified on the command line by CPU ID.
If an invalid PG or CPU is specified, the pginfo command displays a message on standard error showing the invalid ID and continues processing other PGs or CPUs specified on the command line. When none of the specified PGs or CPUs are valid, pginfo exits with an exit status of 2.
In the examples below, the system contains one UltraSPARC T1 processor chip with 8 cores and 32 strands.Example 1 Displaying Information About Every PG
The following command, using no arguments, displays information about every PG.
$ pginfo PG RELATIONSHIP CPUs 0 System 0-31 3 Data_Pipe_to_memory 0-31 2 Floating_Point_Unit 0-31 1 Integer_Pipeline 0-3 4 Integer_Pipeline 4-7 5 Integer_Pipeline 8-11 6 Integer_Pipeline 12-15 7 Integer_Pipeline 16-19 8 Integer_Pipeline 20-23 9 Integer_Pipeline 24-27 10 Integer_Pipeline 28-31Example 2 Displaying Information About All Sharing Relationships
The following command displays information about all sharing relationships.
$ pginfo -s -v RELATIONSHIP PGs -------------------- ------- System 0 Data_Pipe_to_memory 3 Floating_Point_Unit 2 Integer_Pipeline 1 4-10Example 3 Displaying PG Hierarchy
The following command displays general information about all PGs in the system. The output shows which PGs belong to sockets and cores.
$ pginfo -p -T 0 (System) CPUs: 0-31 `-- 3 (Data_Pipe_to_memory [system,socket 0]) CPUs: 0-31 `-- 2 (Floating_Point_Unit [system,socket 0]) CPUs: 0-31 |-- 1 (Integer_Pipeline [core 0]) CPUs: 0-3 |-- 4 (Integer_Pipeline [core 1]) CPUs: 4-7 |-- 5 (Integer_Pipeline [core 2]) CPUs: 8-11 |-- 6 (Integer_Pipeline [core 3]) CPUs: 12-15 |-- 7 (Integer_Pipeline [core 4]) CPUs: 16-19 |-- 8 (Integer_Pipeline [core 5]) CPUs: 20-23 |-- 9 (Integer_Pipeline [core 6]) CPUs: 24-27 `-- 10 (Integer_Pipeline [core 7]) CPUs: 28-31Example 4 Displaying List with Specific Criterion
The following command displays a list of CPUs sharing integer pipeline with CPU 0. This example also demonstrates the use of -r option to filter PGs by sharing relationship name.
$ pginfo -r integer_pipeline -C -c 0 0 1 2 3Example 5 Using Option to Exclude by Specific Criterion
The following command lists all PGs other than the ones that have Integer_Pipeline as their relationship.
$ pginfo -R Integer_Pipeline PG RELATIONSHIP CPUs 0 System 0-31 3 Data_Pipe_to_memory 0-31 2 Floating_Point_Unit 0-31
An error occurred.
See attributes(7) for descriptions of the following attributes:
The command line options and output are Uncommitted.