Solaris 动态跟踪指南

探测器

表 27–1 中介绍了 io 探测器。

表 27–1 io 探测器

探测器 

说明 

start

向外围设备或 NFS 服务器发出 I/O 请求时将触发的探测器。args[0] 指向对应于 I/O 请求的 bufinfo_targs[1] 指向正在对其发出 I/O 请求的设备的 devinfo_targs[2] 指向对应于 I/O 请求的文件的 fileinfo_t。请注意,文件信息可用性取决于发出 I/O 请求的文件系统。有关更多信息,请参见fileinfo_t

done

完成 I/O 请求后将触发的探测器。args[0] 指向对应于 I/O 请求的 bufinfo_tdone 探测器在 I/O 完成之后、对缓冲区执行的处理完成之前触发。因此,在触发 done 探测器时,不会b_flags 中设置 B_DONEargs[1] 指向已对其发出 I/O 请求的设备的 devinfo_targs[2] 指向对应于 I/O 请求的文件的 fileinfo_t

wait-start

探测器就在线程开始等待暂挂的指定 I/O 请求完成之前触发。args[0] 指向对应于线程将等待的 I/O 请求的 buf(9S) 结构。args[1] 指向已对其发出 I/O 请求的设备的 devinfo_targs[2] 指向对应于 I/O 请求的文件的 fileinfo_t。在触发 wait-start 探测器之后的某个时间,wait-done 探测器将在同一线程中触发。

wait-done

线程等待指定 I/O 请求完成这一过程结束后将触发的探测器。args[0] 指向对应于线程将等待的 I/O 请求的 bufinfo_targs[1] 指向已对其发出 I/O 请求的设备的 devinfo_targs[2] 指向对应于 I/O 请求的文件的 fileinfo_twait-done 探测器仅在同一线程中的 wait-done 探测器触发之后触发。

请注意,针对外围设备的所有 I/O 请求以及针对 NSF 服务器的所有文件读/写请求都会触发 io 探测器。例如,由于 readdir(3C) 请求,NFS 服务器中对元数据的请求不会触发 io 探测器。