The following steps will enable you to collect spinlock
statistics using the Spinlock Tracing Utility.
1. Load the Spinlock Tracing Utility execlet.
SDA> SPL LOAD
2. Allocate a trace buffer and start tracing.
SDA> SPL START TRACE
3. Wait a few seconds to allow some tracing to be done, then find
out which spinlocks are incurring the most acquisitions and
the most spinwaits.
SDA> SPL SHOW TRACE/SUMMARY
For example, you might see contention for the SCHED and
IOLOCK8 spinlocks (a high acquisition count, with a
significant proportion of the acquisitions being forced to
wait).
4. Look to see if the spinlocks with a high proportion of
spinwaits caused a significant delay in the acquisition of
the spinlock. You must now collect more detailed statistics on
a specific spinlock.
SDA> SPL START COLLECT/SPINLOCK=SCHED
This command accumulates additional data for the specified
spinlock. As long as tracing is not stopped, collection will
continue to accumulate spinlock-specific data from the trace
buffer.
5. Display the additional data collected for the specified
spinlock.
SDA> SPL SHOW COLLECT
This display includes the average hold time of the spinlock
and the average spinwait time while acquiring the spinlock.
6. Repeat steps 4 and 5 for each spinlock that has contention. A
START COLLECT cancels the previous collection.
7. Disable spinlock tracing when you have collected all the
needed spinlock statistics and release all the memory used
by the Spinlock Tracing utility with the following commands.
SDA> SPL STOP COLLECT
SDA> SPL STOP TRACE
SDA> SPL UNLOAD