pthread Considerations
On AIX 4.3.1 and on unpatched AIX 4.3.2 and 4.3.3 systems, TotalView lets you debug pthread programs running in pthread-compatibility mode or pthreads running in system contention scope; that is, each pthread is bound to a kernel thread (1:1 thread scheduling). See Forcing 1:1 Thread Scheduling Mode on RS/6000 Systems for information on how to force 1:1 thread scheduling.
On AIX 4.3.2 and 4.3.3, you can apply a patch that will allow you to display mutexes, condition variables, reader-writer locks, and pthread keys in your program. This patch is available for AIX 4.3.2 as:
APAR IY02391 -- BACKPORT PTHREAD DEBUG LIBRARY
Due to limitations in the pthread and pthread debug libraries, you cannot reliably debug pthread programs in process contention scope (M:N thread scheduling). IBM is working to correct this problem, but meanwhile you should force the pthread debug library to run in system contention scope (1:1 thread scheduling). See Forcing 1:1 Thread Scheduling Mode on RS/6000 Systems for information on how to force 1:1 thread scheduling.
If you apply this patch, you may introduce a kernel bug on your system where the ptrace(PT_REATT) system call fails with EPERM when debugging IBM parallel environment (PE) programs. If you are debugging PE programs, we do not recommend applying APAR IY02391.
On AIX 4.3.3, the system already contains the pthread and pthread debug libraries that will allow you to display mutexes, condition variables, reader-writer locks, and pthread keys in your program. However, as mentioned above, you cannot reliably debug pthread programs in process contention scope (M:N thread scheduling), and you should force the pthread debug library to run in system contention scope (1:1 thread scheduling).