Per-lock summary
The pre-locl summary report is generated by default when you use the splat command.
The following example shows a sample of the per-lock summary
report.
*********************************************************************************************************
100 max entries, Summary sorted by Acquisitions:
T Acqui- Wait
y sitions or Locks or Percent Holdtime
Lock Names, p or Trans- Passes Real Real Comb
Class, or Address e Passes Spins form %Miss %Total / CSec CPU Elapse Spin
********************** * ****** ***** **** ***** ****** ********* ******* ****** *******
PROC_INT_CLASS.0003 Q 486490 0 0 0.0000 36.7705 26539.380 5.3532 100.000 0.0000
THREAD_LOCK_CLASS.0012 S 323277 0 9468 0.0000 24.4343 17635.658 6.8216 6.8216 0.0000
THREAD_LOCK_CLASS.0118 D 323094 0 4568 0.0000 24.4205 17625.674 6.7887 6.7887 0.0000
ELIST_CLASS.003C S 80453 0 201 0.0000 6.0809 4388.934 1.0564 1.0564 0.0000
ELIST_CLASS.0044 S 80419 0 110 0.0000 6.0783 4387.080 1.1299 1.1299 0.0000
tod_lock C 10229 0 0 0.0000 0.7731 558.020 0.2212 0.2212 0.0000
LDATA_CONTROL_LOCK.0000 D 1833 0 10 0.0000 0.1385 99.995 0.0204 0.0204 0.0000
U_TIMER_CLASS.0014 S 1514 0 23 0.0000 0.1144 82.593 0.0536 0.0536 0.0000
( ... lines omitted ... )
000000002FF22B70 L 368838 0 N/A 0.0000 100.000 9622.964 99.9865 99.9865 0.0000
00000000F00C3D74 M 160625 0 0 0.0000 14.2831 8762.540 99.7702 99.7702 0.0000
00000000200017E8 M 160625 175 0 0.1088 14.2831 8762.540 42.9371 42.9371 0.1487
0000000020001820 V 160623 0 624 0.0000 100.000 1271.728 N/A N/A N/A
00000000F00C3750 M 37 0 0 0.0000 0.0033 2.018 0.0037 0.0037 0.0000
00000000F00C3800 M 30 0 0 0.0000 0.0027 1.637 0.0698 0.0698 0.0000
( ... lines omitted ... )
************************************************************************************************
The first line indicates the maximum number of locks to report (100 in this case, but we show only 14 of the entries here) as specified by the -S 100 flag. The report also indicates that the entries are sorted by the total number of acquisitions or passes, as specified by the -sa flag. The various Kernel locks and PThread synchronizers are treated as two separate lists in this report, so the report would produce the top 100 Kernel locks sorted by acquisitions, followed by the top 100 PThread synchronizers sorted by acquisitions or passes.
The per-lock summary table consists of the following columns:
Item | Descriptor |
---|---|
Lock Names, Class, or Address | The name, class, or address of the lock, depending on whether the splat command could map the address from a name file. |
Type | The type of the lock,
identified by one of the following letters:
|
Acquisitions or Passes | The number of times that the lock was acquired or the condition passed, during the analysis interval. |
Spins | The number of times that the lock (or condition-variable) was spun on during the analysis interval. |
Wait or Transform | The number of times that a thread was driven into a wait state for that lock or condition-variable during the analysis interval. When Krlocks are enabled, a simple lock never enters the wait state and this value represents the number of Krlocks that the simple lock has allocated, which is the transform count of simple locks. |
%Miss | The percentage of access attempts that resulted in a spin as opposed to a successful acquisition or pass. |
%Total | The percentage of all acquisitions that were made to this lock, out of all acquisitions to all locks of this type. All AIX locks (RunQ, simple, and complex) are treated as being the same type for this calculation. The PThread synchronizers mutex, condition-variable, and read/write lock are all distinct types. |
Locks or Passes / CSec | The number of times that the lock (or condition-variable) was acquired (or passed) divided by the cumulative processor time. This is a measure of the acquisition frequency of the lock. |
Percent Holdtime | |
Real CPU | The percentage of the cumulative processor time that the lock was held by any thread at all, whether running or suspended. Note that this definition is not applicable to condition-variables because they are not held. |
Real Elapse | The percentage of the elapsed real time that the lock was held by any thread at all, whether running or suspended. Note that this definition is not applicable to condition-variables because they are not held. |
Comb Spin | The percentage of the cumulative processor time that executing threads spent spinning on the lock. The PThreads library uses waiting for condition-variables, so there is no time actually spent spinning. |