Read/Write lock reports
The PThread read/write lock is similar to an AIX complex lock in that it can be acquired for reading or writing.
Writing is exclusive in that a single thread can only acquire the lock for writing, and no other thread can hold the lock for reading or writing at that point. Reading is not exclusive, so more than one thread can hold the lock for reading. Reading is recursive in that a single thread can hold multiple read-acquisitions on the lock. Writing is not recursive.
[PThread RWLock] ADDRESS: 000000002FF228E0
Parent Thread: 0000000000000001 creation time: 5.236585 deletion time: 6.090511
Pid: 7362 Process Name: /home/testrwlock
Creation call-chain ==================================================================
0000000010000458 .main
00000000100001DC .__start
=============================================================================
| | | Percent Held ( 26.235284s )
Acqui- | Miss Spin Wait | Secs Held | Real Real Comb Real
sitions | Rate Count Count |CPU Elapsed | CPU Elapsed Spin Wait
1150 |40.568 785 0 |21.037942 12.0346 |80.19 99.22 30.45 46.29
--------------------------------------------------------------------------------------
Readers Writers Total
Depth Min Max Avg Min Max Avg Min Max Avg
LockQ 0 2 0 0 1 0 0 2 0
SpinQ 0 768 601 0 15 11 0 782 612
WaitQ 0 769 166 0 15 3 0 783 169
Acquisitions Miss Spin Count Wait Count Busy Percent Held of Total Time
PthreadID Write Read Rate Write Read Write Read Count CPU Elapse Spin Wait
~~~~~~~~~~ ~~~~~~ ~~~~~~ ~~~~~~ ~~~~~~ ~~~~~~ ~~~~~~ ~~~~~~ ~~~~~~ ~~~~~~ ~~~~~~ ~~~~~~ ~~~~~~
772 0 207 78.70 0 765 0 796 0 11.58 15.13 29.69 23.21
515 765 0 1.80 14 0 14 0 0 80.10 80.19 49.76 23.08
258 0 178 3.26 0 6 0 5 0 12.56 17.10 10.00 20.02
Acquisitions Miss Spin Count Wait Count Busy Percent Held of Total Time
Function Name Write Read Rate Write Read Write Read Count CPU Elapse Spin Wait Return Address Start Address Offset
^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
._pthread_body 765 385 40.57 14 771 0 0 0 1.55 3.10 1.63 0.00 00000000D268944C 00000000D2684180 000052CC
In addition to the common header information and the [PThread RWLock]
identifier, this report lists the following lock details:
Item | Descriptor |
---|---|
Parent Thread | Pthread id of the parent pthread. |
creation time | Elapsed time in seconds after the first event recorded in trace (if available). |
deletion time | Elapsed time in seconds after the first event recorded in trace (if available). |
PID | Process identifier. |
Process Name | Name of the process using the lock. |
Call-chain | Stack of called methods (if available). |
Acquisitions | The number of times that the lock was acquired in the analysis interval. |
Miss Rate | The percentage of attempts that failed to acquire the lock. |
Spin Count | The number of unsuccessful attempts to acquire the lock. |
Wait Count | The current PThread implementation does not force pthreads to wait for read/write locks. This reports the number of times a thread, spinning on this lock, is undispatched. |
Seconds Held | This field contains the
following sub-fields:
|
Percent Held | This field contains the
following sub-fields:
|
Depth | This field contains the
following sub-fields:
|
Note: The pthread and function details for read/write locks
are similar to the mutex detail reports, except that they break down
the acquisition, spin, and wait counts by whether the lock is to be
acquired for reading or writing.