0xd0566f64 _pthread_body(??) + 0xe4 ---------- tid# 23593327 (pthread ID: 515) ---------- ... 0x102643e4 AppReport::threadMain()(??) + 0x1a4 0x102d0f90 Runnable::runThread(void*)(??) + 0x30 0xd0566f64 _pthread_body(??) + 0xe4 ---------- tid# 16122169 (pthread ID: 258) ---------- ... 0x102639ac AppsMngt::doSleep(timespec&)(??, ??) + 0x6c 0x1024751c AppsMngt::doMainLoop()(??) + 0x7c 0x100ece08 AppsMngt::threadMain()(??) + 0x88 0x102d0f90 Runnable::runThread(void*)(??) + 0x30 0xd0566f64 _pthread_body(??) + 0xe4 # You can easily identify in the output of Example 2-136 on page 171 all the expected initial  threads of the process (pTID 1) by running the  main()  function. Then, you see that a specific  class method,  <class>::threadMain() , was started for each of the remaining threads. The  class names in the filtered list are suggestions for each thread, as shown in Example 2-137. Comparing with the threads in Example 2-130 on page 166 where VM monitoring is not  enabled, we notice here two extra triplets of communication threads:  HvncpSender ,  HvncpReceiver , and  VlanCommunication . These triplets are created when the communication  with the underlying HMs is established, with one triplet per HM counterpart, as described in  “HM-VMM communication establishment” on page 215. We now organize a bit of the bulk of information that is acquired by examining the daemon  logs and thread structure. Table 2-5 describes each listed thread type. Table 2-5 Threads of the ksys_vmmd daemon Example 2-137 Main thread calls of the ksys_vmmd daemon # procstack 6029594|grep -E "main|threadMain" 0x10007eac main(??, ??) + 0xf2c 0x100e5f40 UnixSocket::threadMain()(??) + 0x160 0x102cd2d0 VmMonitor::threadMain()(??) + 0x3d0 0x1007180c HvncpSender::threadMain()(??) + 0x90c 0x100855ac HvncpReceiver::threadMain()(??) + 0x1fec 0x1008efa4 VlanCommunication::threadMain()(??) + 0x44 0x1007180c HvncpSender::threadMain()(??) + 0x90c 0x100855ac HvncpReceiver::threadMain()(??) + 0x1fec 0x1008efa4 VlanCommunication::threadMain()(??) + 0x44 0x100bb56c VmNetIntfHandler::threadMain()(??) + 0x2cc 0x102643e4 AppReport::threadMain()(??) + 0x1a4 0x100ece08 AppsMngt::threadMain()(??) + 0x88 # Thread type Thread class name Description Initial process thread N/A Initial thread of the process,  pTID=1 , running the  main()  function call. VmMonitor VmMonitor Thread mainly sending heartbeats with HMs and  coordinating with the kernel extension. UnixSocket UnixSocket Communicates with the CLI. 172  Implementing IBM VM Recovery Manager for IBM Power Systems