查看线程事件信息
使用 tp
命令查看线程拥有系统事件的情况。
[root@sylixos:/root]# tp
thread pending show >>
NAME TID PID STAT DELAY PEND EVENT OWNER
---------------- ------- ----- ---- ---------- ----------------------- -------
t_itimer 4010002 0 SLP 80539 0:
t_isrdefer 4010003 0 SEM 0 10010002:job_sync
t_except 4010004 0 SEM 0 10010003:job_sync
t_log 4010005 0 MSGQ 0 1c010004:log_msg:R
t_power 4010006 0 SLP 830 0:
t_hotplug 4010007 0 SEM 825 10010015:job_sync
t_reclaim 4010009 0 MSGQ 0 1c01001f:res_reclaim:R
t_sync 401000a 0 SLP 299 0:
t_sdhcisdio 401000b 0 SEM 0 c010044:sdhcisdio_sem
t_dcwpipe 401000c 0 SEM 0 c010048:dc_mq
t_tpsfs 401000d 0 SLP 50 0:
t_netjob 401000e 0 SEM 0 1001007b:job_sync
t_netjob 401000f 0 SEM 0 1001007c:job_sync
t_netproto 4010010 0 MSGQ 27 1c010081:net_msg:R
t_snmp 4010011 0 MSGQ 0 1c010091:net_msg:R
t_ftpd 4010012 0 MSGQ 0 1c0100b3:net_msg:R
t_telnetd 4010013 0 MSGQ 0 1c0100b7:net_msg:R
t_nettxq 4010014 0 MSGQ 0 1c0100a1:net_msg:R
t_tshell 4010019 0 SEM 0 10010039:ty_rsync
t_ptyserver 401012b 0 JOIN 0 4010135:t_tshell
t_tshell 401012c 0 SEM 0 100103d9:ty_rsync
t_tshell 401012f 0 SEM 0 1001057d:ty_rsync
t_ptyserver 401013e 0 JOIN 0 401012f:t_tshell
t_ptyproc 4010143 0 SEM 0 1001055d:sel_wakeup
t_ptyproc 401015a 0 SEM 0 100104a8:sel_wakeup
t_ptyserver 40101cd 0 JOIN 0 401012c:t_tshell
pending thread: 26
tp
命令的每一列含义如下所示:
- NAME: 线程名字。
- TID: 线程 ID(16 进制数字)。
- PID: 进程 ID(10 进制数字)。
- STAT: 线程状态(例如:MSGQ 代表当前线程等待消息队列)
- DELAY: 当前线程的延时时间。
- PEND EVENT: 当前线程正在等待的事件(例如: 1001007e:job_sync 代表当前线程等待的事件句柄为 1001007b 事件名字为 job_sync)。
- OWNER: 对应的 "PEND EVENT" 的拥有者线程,当该列有数值时代表线程可能出现了死锁情况。
可以通过 sem
命令查看事件的详细情况。
[root@sylixos:/root]# sem 1001007b
Semaphore show >>
Semaphore Name : job_sync
Semaphore Id : 0x1001007b
Semaphore Type : BINARY
Thread Queuing : FIFO
Pended Threads : 1
Semaphore Value : EMPTY