I used blktrace and fio to trace the I/O events of the NVMe SSD in Ubuntu 22.04. However, I only got Q events in my report.Here are my experimental steps:1.Open blktrace to monitor /dev/nvme0n1.blktrace -d /dev/nvme0n1 -w 20 -o - | blkparse -i - > result.log
2.Use fio to perform I/O operations on /dev/nvme0n1.fio ./myconfig.fio --section=test
myconfig.fio is below:
[global]iodepth= 1numjobs=1direct=0time_basedruntime=10size=1Gioengine=libaiogroup_reportingfilename=/dev/nvme0n1[test]bs=4krw=rw
My blktrace version is 2.0.0, and this is the part of result.log
1 259,1 4 1 0.000000000 20636 Q WS 852736 + 128 [fio]2 259,1 4 2 0.0000035040 20636 Q WS 852864 + 128 [fio]3 259,1 4 3 0.000071286 20636 Q WS 852992 + 128 [fio]4 259,1 4 4 0.000108558 20636 Q WS 853120 + 128 [fio]5 259,1 4 5 0.000145295 20636 Q WS 853248 + 128 [fio]6 259,1 4 6 0.000184121 20636 Q WS 853376 + 128 [fio]7 259,1 4 7 0.000220394 20636 Q WS 853504 + 128 [fio]8 259,1 4 8 0.000257687 20636 Q WS 853632 + 128 [fio]9 259,1 4 9 0.000294503 20636 Q WS 853760 + 128 [fio]10 259,1 4 10 0.000332479 20636 Q WS 853888 + 128 [fio]11 259,1 4 11 0.000368838 20636 Q WS 854016 + 128 [fio]
Can anyone explain why I didn't get C event?(I read all log) Is it possible about ubuntu OS version? In my knowledge, blktrace monitors block layer, so NVMe device doesn't go through the block layer?(Because of Nvme device doesn't have i/o scheduler)Any suggestions are welcome. Thanks for helping!
I have tried Ubuntu 20.04 and the C event exists in the blktrace report, so i guess there is something different about kernel? I expect C event should exist in ubuntu 22.04 as well.