Example 4 Sample cstack Report - Blocking Primitives Details

Blocking Primitives Details (All Threads)

------------------------------------------------------------------------------------------------

 

 

 

 

 

Sample

Callpath

Holder's

% Total

Sample

Sample

Sample

 

Hits

Index

Kernel

Hits

Hits

Hits

Hits

Blocking

For Holder

Holder

Thread

Waiting

Waiting

Spinning

Blocked

Primitive

--For Waiter

--Waiter

ID

------------------------------------------------------------------------------------------------

20.00

20

0

20

mutex@counter_lock1

 

 

 

 

 

 

20

0

4206064@t1func

 

 

 

 

20

 

2

10.00

10

0

10

mutex@counter_lock2

 

 

 

 

 

 

10

3

4206065@t2func

 

 

 

 

10

 

4

------------------------------------------------------------------------------------------------

[Minimum primitives: 10, Percent cutoff: 1.00, cumulative percent cutoff: 100.00]

Hot Call Paths (All Threads)

-------------------------------------------------------------

 

--% Total Hits In Only--

 

 

Run +

Run

Block

 

Index

Block

Hits

Hits

Name

 

Hits

Only

Only

 

-------------------------------------------------------------

0

30.0

0.0

30.0

libc.so.1::__sigtimedwait_sys [2]

 

 

 

 

libc.so.1::sigtimedwait [4]

 

 

 

 

libc.so.1::_sleep [3]

 

 

 

 

mutex.hpux.64::t1func [8]

 

 

 

 

libpthread.so.1::__pthread_bound_body [6]

-------------------------------------------------------------

1

20.0

0.0

20.0

libc.so.1::__sigtimedwait_sys [2]

 

 

 

 

libc.so.1::sigtimedwait [4]

 

 

 

 

libc.so.1::_sleep [3]

 

 

 

 

mutex.hpux.64::main [5]

 

 

 

 

dld.so::main_opd_entry [7]

-------------------------------------------------------------

2

20.0

0.0

20.0

libc.so.1::__ksleep { mutex@counter_lock1 } [9]

 

 

 

 

libpthread.so.1::__mxn_sleep [13]

 

 

 

 

libpthread.so.1::*unnamed@0x400000000006(8bf0-e480)* [12]

 

 

 

 

libpthread.so.1::pthread_mutex_lock [11]

 

 

 

 

mutex.hpux.64::mfunc [10]

 

 

 

 

mutex.hpux.64::main [5]

 

 

 

 

dld.so::main_opd_entry [7]

-------------------------------------------------------------

3

20.0

0.0

20.0

libc.so.1::__sigtimedwait_sys [2]

 

 

 

 

libc.so.1::sigtimedwait [4]

 

 

 

 

libc.so.1::_sleep [3]

 

 

 

 

mutex.hpux.64::t2func [14]

 

 

 

 

libpthread.so.1::__pthread_bound_body [6]

-------------------------------------------------------------

4

10.0

0.0

10.0

libc.so.1::__ksleep { mutex@counter_lock2 } [9]

 

 

 

 

libpthread.so.1::__mxn_sleep [13]

 

 

 

 

libpthread.so.1::*unnamed@0x400000000006(8bf0-e480)* [12]

 

 

 

 

libpthread.so.1::pthread_mutex_lock [11]

 

 

 

 

mutex.hpux.64::mfunc [10]

 

 

 

 

mutex.hpux.64::main [5]

 

 

 

 

dld.so::main_opd_entry [7]

-------------------------------------------------------------

[Minimum function entries: 5, percent cutoff: 1.00, cumulative percent cutoff: 100.00]

The 'Blocking Primitives Details' section has holder and waiter thread details for a mutex. For other primitives, holder and waiter details will not be reported. In an application, a mutex can be held by many threads, and while a thread is holding a mutex, there may be many waiter threads.

Activity of holder and waiter threads is reported with their call-paths, indexed in the 'Hot Call Paths' section. A holder thread is reported with a kernel thread ID suffixed with the the name of the routine that the thread will execute once it is created.

Hot Call Paths Part of the Report

This section reports the hottest call paths. A call path represents a subset of the program's execution. The Hot Call Paths section reports the percentage of program's real time that is attributed to specific call paths. You can use the --callpath-cutoffoption to specify cutoff values that limit the hot call paths reported in this section. You can also use the --sort-byoption to specify the metric you want to be used for sorting and cutoffs. See “--callpath-cutoff ” (page 55) and “--sort-by” (page 71).

You can designate one or more functions as being of no interest using the --skip-functionsoption. If a call stack sample contains this function as a leaf routine, it will be skipped while reporting the call stack profile. See “--skip-functions ” (page 71).

148 Producing a Sampled Call Stack Profile Analysis