VMS Help
V73 Features, Programming Features, SDA Commands for Spinlock Tracing
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
The OpenVMS Version 7.3 software release includes the new
Spinlock Tracing utility. With the implementation of this
utility, you can now tell which spinlock is heavily used, and who
is acquiring and releasing the contended spinlocks. The Spinlock
Tracing utility allows a characterization of spinlock usage, as
well as collection of performance data for a given spinlock on
a per-CPU basis. The tracing ability can be enabled or disabled
while the system is running, allowing the collection of spinlock
data for a given period of time without system interruption.
To use the Spinlock Tracing utility, SDA has implemented new
commands and qualifiers. These SDA commands and qualifiers are
described as follows:
This command loads the SPL$DEBUG execlet. This must be done prior
to starting spinlock tracing. It has no qualifiers.
This command displays the data collected for a specific spinlock.
It has no qualifiers.
This command displays spinlock tracing information. Qualifiers
for the SPL SHOW TRACE Command shows the qualifiers for this
command.
Table 5-3 Qualifiers for the SPL SHOW TRACE Command
Qualifier Meaning
/SPINLOCK=spinlock Specifies the display of a specific
spinlock, for example, /SPINLOCK=LCKMGR or
/SPINLOCK=SCHED.
/NOSPINLOCK Specifies that no spinlock trace information
be displayed. If omitted, all spinlock trace
entries are decoded and displayed.
/FORKLOCK=forklock Specifies the display of a specific
forklock, for example, /FORKLOCK=IOLOCK8 or
/FORKLOCK=IPL8.
/NOFORKLOCK Specifies that no forklock trace information
be displayed. If omitted, all fork trace
entries are decoded and displayed.
/ACQUIRE Displays any spinlock acquisitions.
/NOACQUIRE Ignores any spinlock acquisitions.
/RELEASE Displays any spinlock releases.
/NORELEASE Ignores any spinlock releases.
/WAIT Displays any spinwait operations.
/NOWAIT Ignores any spinwait operations.
/FRKDSPTH Displays all invocations of fork routines
within the fork dispatcher. This is the
default.
/NOFRKDSPTH Ignores all of the operations of the /FRKDSPTH
qualifier.
/FRKEND Displays all returns from fork routines within
the fork dispatcher. This is the default.
/NOFRKEND Ignores all operations of the /FRKEND
qualifier.
/SUMMARY Stops the entire trace buffer and displays a
summary of all spinlock and forklock activity.
It also displays the top ten callers.
/CPU=n Specifies the display of information for a
specific CPU only, for example, /CPU=5 or
/CPU=PRIMARY. By default, all trace entries
for all CPUs are displayed.
/TOP=n Displays a different number other than the
top ten callers or fork PC. By default, the
top ten are displayed. This qualifier is only
useful when you also specify the /SUMMARY
qualifier.
This command accumulates information for a specific spinlock.
Qualifiers for the SPL START COLLECT Command shows the qualifiers
for this command:
Table 5-4 Qualifiers for the SPL START COLLECT Command
Qualifier Meaning
/SPINLOCK=spinlock Specifies the tracing of a specific
spinlock, for example, /SPINLOCK=LCKMGR or
/SPINLOCK=SCHED
/ADDRESS=n Specifies the tracing of a specific spinlock
by address
This command enables spinlock tracing. Qualifiers for the SPL
START TRACE Command shows the qualifiers for this command.
Table 5-5 Qualifiers for the SPL START TRACE Command
Qualifier Meaning
/SPINLOCK=spinlock Specifies the tracing of a specific spinlock.
/NOSPINLOCK Disables spinlock tracing and does not collect
any spinlock data. If omitted, all spinlocks
are traced.
/FORKLOCK=forklock Specifies the tracing of a specific
forklock, for example, /FORKLOCK=IOLOCK8 or
/FORKLOCK=IPL8.
/NOFORKLOCK Disables forklock tracing and does not collect
any forklock data. If omitted, all forks are
traced.
/BUFFER=pages Specifies the size of the trace buffer (in
Alpha page units). It defaults to 128 pages,
which is equivalent to 1MB, if omitted.
/ACQUIRE Traces any spinlock acquisitions. This is the
default.
/NOACQUIRE Ignores any spinlock acquisitions.
/RELEASE Traces any spinlock releases. This is the
default.
/NORELEASE Ignores any spinlock releases.
/WAIT Traces any spinwait operations. This is the
default.
/NOWAIT Ignores any spinwait operations.
/FRKDSPTH Traces all invocations of fork routines within
the fork dispatcher. This is the default.
/NOFRKDSPTH Ignores all of the /FRKDSPTH operations.
/FRKEND Traces all returns from fork routines within
the fork dispatcher. This is the default.
/NOFRKEND Ignores all of the operations of the /FRKEND
qualifier.
/CPU=n Specifies the tracing of a specific CPU
only, for example, /CPU=5 or /CPU=PRIMARY.
By default, all CPUs are traced.
This command stops the spinlock collection, but does not stop
spinlock tracing. It has no qualifiers.
This command disables spinlock tracing, but it does not
deallocate the trace buffer. It has no qualifiers.
This command unloads and cleans up the SPL$DEBUG execlet. Tracing
is automatically disabled and the trace buffer deallocated. It
has no qualifiers.
For more information, refer to the OpenVMS Alpha System Analysis
Tools Manual.
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.