我正在尝试使用Linux Perf Events来了解块设备IO。我正在监控插入,发布和完成。我有时会得到如下痕迹:
$ perf script | grep 720056912
jbd2/sda5-8 203 368748.496400: block:block_rq_insert: 8,0 FWFS 0 () 720056912 + 8 [jbd2/sda5-8]
swapper 0 368748.518255: block:block_rq_issue: 8,0 WS 0 () 720056912 + 8 [swapper/0]
swapper 0 368748.518545: block:block_rq_complete: 8,0 WS () 720056912 + 8 [0]
swapper 0 368748.529398: block:block_rq_complete: 8,0 WS () 720056912 + 0 [0]
根据相邻的sched:sched_wakeup事件判断,第二个完成是真实的。
有谁知道这里发生了什么?除了看第二个之外,还有什么方法可以告诉第一个完整是不够的?我很乐意开启更多活动。