blob: ac972a954261fb1f4f991d57a243f836eddedf61 [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001Systemtap is a dynamic tracing/instrumenting tool available on Linux. Probes
2that are not fired at run time have close to zero overhead.
3
4The following probes are available for NPTL:
5
6Thread creation & Join Probes
7=============================
8pthread_create - probe for pthread_create
9 arg1 = pointer (pthread_t*) to thread
10 arg2 = pointer (pthread_attr_t*) to attr
11 arg3 = pointer (void *) to start_routine
12 arg4 = arguments to start_routine
13pthread_start - probe for actual thread creation
14 arg1 = struct pthread (members include thread ID, process ID)
15 arg2 = address of start_routine
16 arg3 = pointer to the list of arguments
17pthread_join - probe for pthread_join
18 arg1 = thread ID
19pthread_join_ret - probe for pthread_join return
20 arg1 = thread ID
21 arg2 = return value
22
23Lock-related Probes
24===================
25mutex_init - probe for pthread_mutex_init
26 arg1 = address of mutex lock
27mutex_acquired - probe for succ. return of pthread_mutex_lock
28 arg1 = address of mutex lock
29mutex_timedlock_acquired - probe for succ. return of pthread_mutex_timedlock
30 arg1 = address of mutex lock
31mutex_entry - probe for entry to the pthread_mutex_lock function
32 arg1 = address of mutex lock
33mutex_timedlock_entry - probe for entry to the pthread_mutex_timedlock function
34 arg1 = address of mutex lock, arg2 = address of timespec
35mutex_release - probe for pthread_mutex_unlock after the successful release of a
36 mutex lock
37 arg1 = address of mutex lock
38mutex_destroy - probe for pthread_mutex_destroy
39 arg1 = address of mutex lock
40
41wrlock_entry - probe for entry to the pthread_rwlock_wrlock function
42 arg1 = address of rw lock
43rdlock_entry - probe for entry to the pthread_rwlock_rdlock function
44 arg1 = address of rw lock
45
46rwlock_destroy - probe for pthread_rwlock_destroy
47 arg1 = address of rw lock
48wrlock_acquire_write - probe for pthread_rwlock_wrlock (after getting the lock)
49 arg1 = address of rw lock
50rdlock_acquire_read - probe for pthread_rwlock_rdlock after successfully getting
51 the lock
52 arg1 = address of rw lock
53rwlock_unlock - probe for pthread_rwlock_unlock
54 arg1 = address of rw lock
55
56Condition variable Probes
57=========================
58cond_init - probe for pthread_cond_init
59 arg1 = condition
60 arg2 = attr
61cond_destroy - probe for pthread_cond_destroy
62 arg1 = cond
63cond_wait - probe for pthread_cond_wait
64 arg1 = condition
65 arg2 = mutex lock
66cond_timedwait - probe for pthread_cond_timedwait
67 arg1 = condition
68 arg2 = mutex lock
69 arg3 = timespec
70cond_signal - probe for pthread_cond_signal
71 arg1 = condition
72cond_broadcast - probe for pthread_cond_broadcast
73 arg1 = condition