IBM Power7 Optimization And Tuning Manual page 183

Table of Contents

Advertisement

This report is useful in determining what system calls are blocking threads from proceeding.
For example, threads appearing in this report with an unfinished recv call are waiting on data
to be received over a socket.
Another useful trace-based tool is splat, which is the Simple Performance Lock Analysis
Tool. The splat tool provides reports about the usage of kernel and application
(pthread-level) locks. At the pthread level, splat can report about the usage of pthread
synchronizers: mutexes, read/write locks, and condition variables. Importantly, splat provides
data about the degree of contention and blocking on these objects, an important
consideration in creating highly scalable and pthread-based applications.
The pthread library instrumentation does not provide names or classes of synchronizers, so
the addresses are the only way that you have to identify them. Under certain conditions, the
instrumentation can capture the return addresses of the function call stack, and these
addresses are used with the output of the gensyms tool to identify the call chains when these
synchronizers are created. The creation and deletion times of the synchronizer can
sometimes be determined as well, along with the ID of the pthread that created them.
An example of a mutex report from splat is shown in Example B-7.
Example B-7 Mutex report from splat
[pthread MUTEX]
ADDRESS:
Parent Thread: 0000000000000001
Pid: 18396
Process Name: trcstop
Creation call-chain ==================================================================
00000000D268606C
.pthread_mutex_lock
00000000D268EB88
.pthread_once
00000000D01FE588
.__libs_init
00000000D01EB2FCdne_callbacks
00000000D01EB280
._libc_declare_data_functions
00000000D269F960
._pth_init_libc
00000000D268A2B4
.pthread_init
00000000D01EAC08
.__modinit
000000001000014C
.__start
|
Acqui-
| Miss Spin
Wait
sitions | Rate Count Count Count |CPU
1
| 0.000 0
0
-------------------------------------------------------------------------------------
Depth
Min
Max
Avg
SpinQ
0
0
0
WaitQ
0
0
0
Recursion 0
1
0
Acqui-
Miss Spin
PThreadID
sitions
Rate Count Count Count
~~~~~~~~~~ ~~~~~~~~ ~~~~~~ ~~~~~~ ~~~~~~ ~~~~~~
1
1
0.00
Acqui- Miss
Function Name
sitions Rate
Offset
^^^^^^^^^^^^^
^^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
^^^^^^^^
.pthread_once
0
0.00
.pthread_once
1
0.00
In addition to the common header information and the [pthread MUTEX] identifier, this report
lists the following lock details:
Parent thread
Creation time
00000000F0154CD0
creation time:
26.232305
|
| Percent Held ( 26.235284s )
Busy
|
Secs Held
| Real Real
Elapsed | CPU Elapsed Spin Wait
0
|0.000006 0.000006 | 0.00
Wait
Busy
Percent Held of Total Time
CPU
~~~~~~
0
0
0
0.00
Spin
Wait
Busy
Percent Held of Total Time
Count Count Count
CPU
0
0
0
99.99 99.99
0
0
0
0.01
Pthread ID of the parent pthread
Elapsed time in seconds after the first event recorded in trace (if available)
Appendix B. Performance tooling and empirical performance analysis
Comb Real
0.00
0.00 0.00
Elapse
Spin
Wait
~~~~~~
~~~~~~
~~~~~~
0.00
0.00
0.00
Elapse Spin
Wait
Return Address
0.00
0.00 00000000D268EC98 00000000D2684180
0.01
0.00
0.00 00000000D268EB88 00000000D2684180
Start Address
167

Advertisement

Table of Contents
loading

This manual is also suitable for:

Power7+

Table of Contents