Solaris 动态跟踪指南

参数

表 26–2 中列出了 sched 探测器的参数类型;表 26–1 中对这些参数进行了说明。

表 26–2 sched 探测器参数

探测器 

args[0]

args[1]

args[2]

args[3]

change-pri

lwpsinfo_t *

psinfo_t *

pri_t

— 

dequeue

lwpsinfo_t *

psinfo_t *

cpuinfo_t *

— 

enqueue

lwpsinfo_t *

psinfo_t *

cpuinfo_t *

int

off-cpu

lwpsinfo_t *

psinfo_t *

— 

— 

on-cpu

— 

— 

— 

— 

preempt

— 

— 

— 

— 

remain-cpu

— 

— 

— 

— 

schedctl-nopreempt

lwpsinfo_t *

psinfo_t *

— 

— 

schedctl-preempt

lwpsinfo_t *

psinfo_t *

— 

— 

schedctl-yield

lwpsinfo_t *

psinfo_t *

— 

— 

sleep

— 

— 

— 

— 

surrender

lwpsinfo_t *

psinfo_t *

— 

— 

tick

lwpsinfo_t *

psinfo_t *

— 

— 

wakeup

lwpsinfo_t *

psinfo_t *

— 

— 

表 26–2 中所示,许多 sched 探测器的参数由指向 lwpsinfo_t 的指针和指向 psinfo_t 的指针组成,它们分别指示线程和包含该线程的进程。这些结构将分别在lwpsinfo_tpsinfo_t中详细介绍。

cpuinfo_t

cpuinfo_t 结构定义 CPU。如表 26–2 中所示,enqueuedequeue 探测器的参数都包括指向 cpuinfo_t 的指针。此外,curcpu 变量指向对应于当前 CPU 的 cpuinfo_tcpuinfo_t 结构的定义如下所示:

typedef struct cpuinfo {
	processorid_t cpu_id;           /* CPU identifier */
	psetid_t cpu_pset;              /* processor set identifier */
	chipid_t cpu_chip;              /* chip identifier */
	lgrp_id_t cpu_lgrp;             /* locality group identifer */
	processor_info_t cpu_info;      /* CPU information */
} cpuinfo_t;

cpu_id 成员是 psrinfo(1M)p_online(2) 返回的处理器标识符。

cpu_pset 成员是包含 CPU(如果存在)的处理器集。有关处理器集的更多详细信息,请参见 psrset(1M)

cpu_chip 成员是物理芯片的标识符。物理芯片可能包含若干 CPU。有关更多信息,请参见 psrinfo(1M)

cpu_lgrp 成员是与 CPU 关联的延迟组的标识符。有关延迟组的详细信息,请参见 liblgrp(3LIB)

cpu_info 成员是与 CPU 相关联的 processor_info_t 结构(由 processor_info(2) 返回)。