|
HP OpenVMS System Analysis Tools Manual
SHOW PFN_DATA
Displays information that is contained in the page lists and PFN
database.
Format
SHOW PFN_DATA {[/qualifier]|pfn [{:end-pfn|;length}]}
or
SHOW PFN_DATA/MAP
Parameters
pfn
Page frame number (PFN) of the physical page for which information is
to be displayed.
end-pfn
Last PFN to be displayed. When you specify the end-pfn
parameter, a range of PFNs is displayed. This range starts at the PFN
specified by the pfn parameter and ends with the PFN
specified by the end-pfn parameter.
length
Length of the PFN list to be displayed. When you specify the
length parameter, a range of PFNs is displayed. This
range starts at the PFN specified by the pfn parameter
and contains the number of entries specified by the
length parameter.
Qualifiers
/ADDRESS=<PFN-entry-address>
Displays the PFN database entry at the address specified. The address
specified is rounded to the nearest entry address, so if you have an
address that points to one of the fields of the entry, the correct
database entry will still be found.
/ALL
Displays the following lists:
Free page list
Zeroed free page list
Modified page list
Bad page list
Untested page list
Private page lists, if any
Per-color or per-RAD free and zeroed free page lists
Entire database in order by page frame number
This is the default behavior of the SHOW PFN_DATA command. SDA precedes
each list with a count of the pages it contains and its low and high
limits.
/BAD
Displays the bad page list. SDA precedes the list with a count of the
pages it contains, its low limit, and its high limit.
/COLOR [={n|ALL}]
Displays data on page coloring. Table 4-13 shows the command options
available with this qualifier.
Table 4-13 Command Options with the /COLOR and /RAD Qualifiers
Options |
Meaning |
/COLOR
1 with no value
|
Displays a summary of the lengths of the color
1 page lists for both free pages and zeroed pages.
|
/COLOR=
n where
n is a color number
|
Displays the data in the PFN lists (for the specified color) for both
free and zeroed pages.
|
/COLOR=ALL
|
Displays the data in the PFN lists (for all colors), for both free and
zeroed free pages.
|
/COLOR=
n or /COLOR=ALL with /FREE or /ZERO
|
Displays only the data in the PFN list (for the specified color or all
colors), for either free or zeroed free pages as appropriate. The
qualifiers /BAD and /MODIFIED are ignored with /COLOR=
n and /COLOR=ALL.
|
/COLOR without an option specified together with one or more of /FREE,
/ZERO, /BAD, or /MODIFIED
|
Displays the color summary in addition to the display of the requested
list.
|
1Wherever COLOR is used in this table, RAD is equally
applicable, both in the qualifier name and the meaning.
For more information on page coloring, see HP OpenVMS System Management Utilities Reference Manual: M--Z.
/FREE
Displays the free page list. SDA precedes the list with a count of the
pages it contains, its low limit, and its high limit.
/MAP
Displays the contents of the PFN memory map. On platforms that support
it, the I/O space map is also displayed. You cannot combine the /MAP
qualifier with any parameters or other qualifiers.
/MODIFIED
Displays the modified page list. SDA precedes the list with a count of
the pages it contains, its low limit, and its high limit.
/PRIVATE [=address]
Displays private PFN lists. If no address is given, all private PFN
lists are displayed; if an address is given, only the PFN list whose
head is at the given address is displayed.
/RAD [={n|ALL}]
Displays data on the disposition of pages among the Resource Affinity
Domains (RADs) on applicable systems. See Table 4-13 for the command
options available with this qualifier.
/SYSTEM
Displays the entire PFN database in order by page frame number,
starting at PFN 0000.
/UNTESTED
Displays the state of the untested PFN list that was set up for
deferred memory testing.
/ZERO
Displays the contents of the zeroed free page list.
Description
For each page frame number it displays, the SHOW PFN_DATA command lists
information used in translating physical page addresses to virtual page
addresses.
The display contains two or three lines: Table 4-14 shows the fields
in line one, Table 4-15 shows the fields in line two, and
Table 4-16 shows the fields in line three, displayed only if
relevant (page table page or non-zero flags).
Table 4-14 PFN Data---Fields in Line One
Item |
Contents |
PFN
|
Page frame number.
|
DB ADDRESS
|
Address of PFN structure for this page.
|
PT PFN
|
PFN of the page table page that maps this page.
|
BAK
|
Place to find information on this page when all links to this PTE are
broken: either an index into a process section table or the number of a
virtual block in the paging file.
|
FLINK
|
Forward link within PFN database that points to the next physical page
(if the page is on one of the lists: FREE, MODIFIED, BAD, or ZEROED);
this longword also acts as the count of the number of processes that
are sharing this global section.
|
BLINK
|
Backward link within PFN database (if the page is on one of the lists:
FREE, MODIFIED, BAD, or ZEROED); also acts as an index into the working
set list.
|
SWP/BO
|
Either a swap file page number or a buffer object reference count,
depending on a flag set in the page state field.
|
LOC
|
Location of the page within the system. Table 4-12 shows the
possible locations with their meaning.
|
Table 4-15 PFN Data---Fields in Line Two
Item |
Contents |
(Blank)
|
First field of line two is left blank.
|
PTE ADDRESS
|
Virtual address of the page table entry that describes the virtual page
mapped into this physical page. If no virtual page is mapped into this
physical page then "<no backpointer>" is displayed, and the next
three fields are left blank.
|
PTE Type
|
If a virtual page is mapped into this physical page, a description of
the type of PTE is provided across the next three fields: one of
"System-space PTE", "Global PTE (section index
nnnn)", "Process PTE (process index
nnnn)". If no virtual page is mapped into this physical page,
these fields are left blank.
|
REFCNT
|
Number of references being made to this page.
|
PAGETYP
|
Type of physical page. See Table 4-11 for the types of physical
pages and their meanings.
|
Table 4-16 PFN Data---Fields in Line Three
Item |
Contents |
COUNTS
|
If the page is a page table page, then the contents of the
PRN$W_PT_VAL_CNT, PFN$W_PT_LCK_CNT, and PFN$W_PT_WIN_CNT fields are
displayed. The format is as follows:
VALCNT =
nnnn LCKCNT =
nnnn WINCNT =
nnnn
|
FLAGS
|
The flags in text form that are set in page state. Table 4-17 shows
the possible flags and their meaning.
|
Table 4-17 Flags Set in Page State
Flag |
Meaning |
BUFOBJ
|
Set if any buffer objects reference this page
|
COLLISION
|
Indicates an empty collision queue when page read is complete
|
BADPAG
|
Indicates a bad page
|
RPTEVT
|
Indicates a report event on I/O completion
|
DELCON
|
Indicates a delete PFN when REFCNT=0
|
MODIFY
|
Indicates a dirty page (modified)
|
UNAVAILABLE
|
Indicates PFN is unavailable; most likely a console page
|
SWPPAG_VALID
|
Indicated swap file page number is valid
|
TOP_LEVEL_PT
|
Level one (1) page table
|
SLOT
|
Page is part of process's balance set
|
SHARED
|
Shared memory page
|
ZEROED
|
Shared memory page that has been zeroed
|
Examples
#1 |
SDA> SHOW PFN_DATA/MAP
System Memory Map
-----------------
Start PFN PFN count Flags
--------- --------- -----
00000000 000000FA 0009 Console Base
000000FA 00003306 000A OpenVMS Base
00003C00 000003FF 000A OpenVMS Base
00003FFF 00000001 0009 Console Base
00003400 00000800 0010 Galaxy_Shared
|
This example shows the output when you invoke the SHOW PFN/MAP command.
#2 |
SDA> SHOW PFN 598:59f
PFN data base for PFN range
---------------------------
PFN DB ADDRESS PT PFN BAK FLINK BLINK SWP/BO LOC
PTE ADDRESS REFCNT PAGETYP
----------------- ----------------- ----------------- ----------------- ----------------- ----------------- ------ -------
00000000.00000598 FFFFF802.06C16600 00000000.000001D7 FFFFFFFF.84D6F700 00000000.00000000 00000000.00000000 ---- ACTIVE
FFFFF801.FFD072A0 System-space PTE 0001 SYSTEM
00000000.00000599 FFFFF802.06C16640 00000000.00000000 00000000.0001DBD9 00000000.0001DBD9 00000000.000081B6 ---- FRELST
<no backpointer> 0000 SYSTEM
00000000.0000059A FFFFF802.06C16680 00000000.00000565 FF000000.00000000 00000000.00000000 00000000.000000D4 ---- ACTIVE
000007FF.FF700000 Process PTE (process index 001A) 0001 PROCESS
FLAGS = Modify
00000000.0000059B FFFFF802.06C166C0 00000000.0000493A 000000FD.00010000 00000000.00000003 00000000.00000000 ---- ACTIVE
FFFFF802.0F641680 Global PTE (section index 00FD) 0001 GLOBAL
00000000.0000059C FFFFF802.06C16700 00000000.000005E3 FF000000.00000000 00000000.00000000 00000000.00000136 ---- ACTIVE
000007FE.00001C30 Process PTE (process index 000F) 0001 PROCESS
00000000.0000059D FFFFF802.06C16740 00000000.0000059D 00000000.8705A000 00000000.00000002 00000000.00000001 ---- ACTIVE
000007FF.FFFFFFF8 Process PTE (process index 0005) 0001 PPT(L1)
VALCNT = 0002 LCKCNT = FFFF WINCNT = FFFF FLAGS = Modify,Top_Level_PT
00000000.0000059E FFFFF802.06C16780 00000000.000001D7 FFFFFFFF.84D6F700 00000000.00000000 00000000.00000000 ---- ACTIVE
FFFFF801.FFD07420 System-space PTE 0001 SYSTEM
00000000.0000059F FFFFF802.06C167C0 00000000.000001D7 FFFFFFFF.84D6F700 00000000.00000000 00000000.00000000 ---- ACTIVE
FFFFF801.FFD07428 System-space PTE 0001 SYSTEM
|
This example shows the output from SHOW PFN for a range of pages.
SHOW POOL
Displays the contents of the nonpaged dynamic storage pool, the
bus-addressable pool, and the paged dynamic storage pool. You can
display part or all of each pool. If you do not specify a range or
qualifiers, the default is SHOW POOL/ALL. Optionally, you can display
the pool history ring buffer and pool statistics.
Format
SHOW POOL {range|/ALL (d)|/BAP |/NONPAGED|/PAGED}
[/BRIEF|/CHECK|/FREE|/HEADER |/MAXIMUM_BYTES
[=n]|/SUMMARY |/TYPE=packet-type
|/SUBTYPE=packet-type|/UNUSED] |[/RING_BUFFER]
|[/STATISTICS [= ALL] [{/NONPAGED |/BAP|/PAGED}]]
Parameter
range
Range of virtual addresses in pool that SDA is to examine. You can
express a range using the following syntax:
m:n
|
Range of virtual addresses in pool from
m to
n
|
m;n
|
Range of virtual addresses in pool starting at
m and continuing for
n bytes
|
Qualifiers
/ALL
Displays the entire contents of the dynamic storage pool, except for
those portions that are free (available). This is the default behavior
of the SHOW POOL command.
/BAP
Displays the contents of the bus-addressable dynamic storage pool
currently in use.
/BRIEF
Displays only general information about the dynamic storage pool and
its addresses.
/CHECK
Checks all free packets for POOLCHECK-style corruption, in exactly the
same way that the system does when generating a POOLCHECK crash dump.
/FREE
Displays the entire contents, both allocated and free, of the specified
region or regions of pool. Use the /FREE qualifier with a
range to show all of the used and free pool in the
given range.
/HEADER
Displays only the first 16 bytes of each data packet found within the
specified region or regions of pool.
/MAXIMUM_BYTES [=n]
Displays only the first n bytes of a pool packet; if you
specify /MAXIMUM_BYTES without a value, the default is 64 bytes.
/NONPAGED
Displays the contents of the
nonpaged dynamic storage pool currently in use.
/PAGED
Displays the contents of the paged dynamic storage pool currently in
use.
/RING_BUFFER
Displays the contents of the nonpaged pool history ring buffer if pool
checking has been enabled. Entries are displayed in reverse
chronological order, that is, most to least recent.
/STATISTICS [= ALL]
Displays usage statistics about each lookaside list and the variable
free list. For each lookaside list, its queue header address, packet
size, the number of packets, attempts, fails, and deallocations are
displayed. (If pool checking is disabled, the attempts, fails, and
deallocations are not displayed.) For the variable free list, its queue
header address, the number of packets and the size of the smallest and
largest packets are displayed. You can further qualify /STATISTICS by
using either /NONPAGED, /BAP, or /PAGED to display statistics for a
specified pool area. (Paged pool has no lookaside lists; therefore,
only variable free list statistics are displayed.)
If you specify /STATISTICS without the ALL keyword, only active
lookaside lists are displayed. Use /STATISTICS = ALL to display all
lookaside lists.
/SUBTYPE=packet-type
Displays the packets within the specified region or regions of pool
that are of the indicated packet-type. For information on
packet-type, see packet-type in the Description
section.
/SUMMARY
Displays only an allocation summary for each specified region of pool.
/TYPE=packet-type
Displays the packets within the specified region or regions of pool
that are of the indicated packet-type. For information on
packet-type, see packet-type in the Description
section.
/UNUSED
Displays only variable free packets and lookaside list packets, not
used packets.
Description
The SHOW POOL command displays information about the contents of any
specified region of dynamic storage pool. There are several distinct
display formats, as follows:
- Pool layout display. This display includes the addresses of the
pool structures and lookaside lists, and the ranges of memory used for
pool.
- Full pool packet display. This display has a section for each
packet, consisting of a summary line (the packet type, its start
address and size, and, on systems that have multiple Resource Affinity
Domains (RADs), the RAD number), followed by a dump of the contents of
the packet in hexadecimal and ASCII.
- Header pool packet display. This display has a single line for each
packet. This line contains the packet type, its start address and size,
and, on systems that have multiple RADs, the RAD number, followed by
the first 16 bytes of the packet, in hexadecimal and ASCII.
- Pool summary display. This display consists of a single line for
each packet type, and includes the type, the number of occurrences and
the total size, and the percentage of used pool consumed by this packet
type.
- Pool statistics display. This display consists of statistics for
variable free pool and for each lookaside list. For variable free pool,
it includes the number of packets, the total bytes available, and the
sizes of the smallest and largest packets. In addition, if pool
checking is enabled, the total bytes allocated from the variable list
and the number of times pool has been expanded are also displayed.
For lookaside lists, the display includes the listhead address and
size, the number of packets (both the maintained count and the actual
count), the operation sequence number for the list, the allocation
attempts and failures, and the number of deallocations. On systems
with multiple RADs, statistics for on-RAD deallocations are included in
the display for the first RAD.
- Ring buffer display. This display is only available when pool
checking is enabled. It consists of one line for each packet in the
ring buffer and includes the address and size of the pool packet being
allocated or deallocated, its type, the PC of the caller and the pool
routine called, the CPU and IPL of the call, and the system time.
The qualifiers used on the SHOW POOL command determine which displays
are generated. The default is the pool layout display, followed by the
full pool packet display, followed by the pool summary display, these
being generated in turn for Nonpaged Pool, Bus-Addressable Pool (if it
exists in the system or dump being analyzed), and then Paged Pool.
If you specify a range, type, or subtype, then the pool layout display
is not generated, and the pool summary display is a summary only for
the range, type, or subtype, and not for the entire pool.
Not all displays are relevant for all pool types. For example, Paged
Pool has no lookaside lists, so the Paged Pool statistics display
consists only of variable free pool information. And because there is a
single ring buffer for all pools, only one ring buffer display is
generated even if all pools are being displayed.
Packet-type
Each packet of pool has a type field (a byte containing a value in the
range of 0-255). Many of these type values have names associated that
are defined in $DYNDEF in SYS$LIBRARY:LIB.MLB. The packet-type
specified in the /TYPE qualifier of the SHOW POOL command can either be
the value of the pool type or its associated name.
Some pool packet types have an additional subtype field (also a byte
containing a value in the range of 0--255), many of which also have
associated names. The packet-type specified in the /SUBTYPE
qualifier of the SHOW POOL command can either be the value of the pool
type or its associated name. However, if given as a value, a /TYPE
qualifier (giving a value or name) must also be specified. Note also
that /TYPE and /SUBTYPE are interchangeable if packet-type is
given by name. Table 4-18 shows several examples.
Table 4-18 /TYPE and /SUBTYPE Qualifier Examples
/TYPE and /SUBTYPE Qualifiers |
Meaning |
/TYPE = CI
|
All CI packets regardless of subtype
|
/TYPE = CI_MSG
|
All CI packets with subtype CI_MSG
|
/TYPE = MISC/SUBTYPE = 120
|
All MISC packets with subtype 120
|
/TYPE = 0 or /TYPE = UNKNOWN
|
All packets with an unknown TYPE/SUBTYPE combination
|
Examples
2. SDA> SHOW POOL/TYPE=IPC/HEADER 8156E140:815912C0
Non-Paged Dynamic Storage Pool
------------------------------
Dump of packets allocated from Non-Paged Pool
---------------------------------------------
Packet type/subtype Start Length RAD Header contents
------------------------- -------- -------- --- -----------------------------------------------------
IPC_TDB 8156E140 00000040 00 81591180 057B0040 00000040 81591180 ..Y.@...@.{...Y.
IPC_LIST 815838C0 00009840 00 004C0200 087B9840 0057A740 8158D100 .ÑX.@§W.@.{...L.
IPC_LIST 8158D100 00001840 00 00040400 087B1840 00570F00 8158E940 @éX...W.@.{.....
IPC_LIST 8158E940 00002840 00 00140200 087B2840 0056F6C0 81591180 ..Y.ÀöV.@({.....
IPC_TPCB 81591180 00000080 00 00000000 067B0080 0056CE80 81591200 ..Y..ÎV...{.....
IPC 81591200 000000C0 00 00000000 007B00C0 0056CE00 815912C0 À.Y..ÎV.À.{.....
Summary of Non-Paged Pool contents
----------------------------------
Packet type/subtype Packet count Packet bytes Percent
--------------------------- ---------------- ---------------- --------
IPC 00000006 0000DA40 (100.0%)
IPC 00000001 000000C0 (0.3%)
IPC_TDB 00000001 00000040 (0.1%)
IPC_TPCB 00000001 00000080 (0.2%)
IPC_LIST 00000003 0000D8C0 (99.3%)
Total space used: 0000DA40 (55872.) bytes out of 00023180 (143744.) bytes
in 00000006 (6.) packets
Total space utilization: 38.9%
|
This example shows how you can specify a pool packet type and a range
of addresses.
3. SDA> SHOW POOL/STATISTICS
Non-Paged Pool statistics for RAD 00
------------------------------------
On-RAD deallocations (all RADs): 1221036
Total deallocations (all RADs): 1347991
Percentage of on-RAD deallocations: 90.6%
Variable list statistics
------------------------
Number of packets on variable list: 7
Total bytes on variable list: 3613376
Smallest packet on variable list: 256
Largest packet on variable list: 3598016
Bytes allocated from variable list: 2140480
Times pool expanded: 0
Lookaside list statistics
-------------------------
List Packets Packets Operation Allocation Allocation
Listhead address size (approx) (actual) sequence # attempts failures Deallocs
----------------- ---- ---------- ---------- ---------- ---------- ---------- ----------
FFFFFFFF.81008870 64 5 5 10057 10549 492 10062
FFFFFFFF.81008878 128 21 21 366 4881 4515 387
FFFFFFFF.81008880 192 33 33 27376 27542 166 27409
FFFFFFFF.81008888 256 4 4 8367 8476 118 8362
.
.
.
|
This example shows the Nonpaged Pool portion of the SHOW
POOL/STATISTICS display.
|