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:

  1 - SPL_LOAD

    This command loads the SPL$DEBUG execlet. This must be done prior
    to starting spinlock tracing. It has no qualifiers.

  2 - SPL_SHOW_COLLECT

    This command displays the data collected for a specific spinlock.
    It has no qualifiers.

  3 - SPL_SHOW_TRACE

    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.

  4 - SPL_START_COLLECT

    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

  5 - SPL_START_TRACE

    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.

  6 - SPL_STOP_COLLECT

    This command stops the spinlock collection, but does not stop
    spinlock tracing. It has no qualifiers.

  7 - SPL_STOP_TRACE

    This command disables spinlock tracing, but it does not
    deallocate the trace buffer. It has no qualifiers.

  8 - SPL_UNLOAD

    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.
  Close     HLB-list     TLB-list     Help  

[legal] [privacy] [GNU] [policy] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.