Hello all, I was playing with block device io tracing recently, and have encountered some strange things. (kernel 2.6.18 and blktrace just from git)
So there is one (dominant) reader on HN: fio tool with such job file: [global] rw=randread direct=0 timeout=200 [reader0] filename=file0 ;file of size 1 gb Here is a piece of decoded blktrace output: 8,0 0 105919 200.287000000 0 C R 338688739 + 8 [0] 8,0 0 105920 200.287000000 7017 Q R 339904179 + 8 [fio] 8,0 0 105921 200.287000000 7017 B R 339904179 + 8 [fio] 8,0 0 105922 200.287000000 7017 G R 339904179 + 8 [fio] 8,0 0 105923 200.287000000 7017 P R [fio] 8,0 0 105924 200.287000000 7017 I R 339904179 + 8 [fio] 8,0 0 105925 200.287000000 7017 D R 339904179 + 8 [fio] 8,0 0 105926 200.287000000 7017 U R [fio] 1 8,0 0 105927 200.291000000 0 C R 339904179 + 8 [0] 8,0 0 105928 200.291000000 7017 Q R 340230323 + 8 [fio] 8,0 0 105929 200.291000000 7017 B R 340230323 + 8 [fio] 8,0 0 105930 200.291000000 7017 G R 340230323 + 8 [fio] 8,0 0 105931 200.291000000 7017 P R [fio] 8,0 0 105932 200.291000000 7017 I R 340230323 + 8 [fio] 8,0 0 105933 200.291000000 7017 D R 340230323 + 8 [fio] 8,0 0 105934 200.291000000 7017 U R [fio] 1 8,0 0 105935 200.302000000 0 C R 340230323 + 8 [0] 8,0 0 105936 200.302000000 7017 Q R 340265211 + 8 [fio] 8,0 0 105937 200.302000000 7017 B R 340265211 + 8 [fio] 8,0 0 105938 200.302000000 7017 G R 340265211 + 8 [fio] 8,0 0 105939 200.302000000 7017 P R [fio] 8,0 0 105940 200.302000000 7017 I R 340265211 + 8 [fio] 8,0 0 105941 200.302000000 7017 D R 340265211 + 8 [fio] 8,0 0 105942 200.302000000 7017 U R [fio] 1 8,0 0 105943 200.306000000 0 C R 340265211 + 8 [0] 8,0 0 105944 200.306000000 7017 Q R 338171203 + 8 [fio] 8,0 0 105945 200.306000000 7017 B R 338171203 + 8 [fio] 8,0 0 105946 200.306000000 7017 G R 338171203 + 8 [fio] 8,0 0 105947 200.306000000 7017 P R [fio] 8,0 0 105948 200.306000000 7017 I R 338171203 + 8 [fio] 8,0 0 105949 200.306000000 7017 D R 338171203 + 8 [fio] 8,0 0 105950 200.306000000 7017 U R [fio] 1 8,0 0 105951 200.312000000 0 C R 338171203 + 8 [0] 8,0 0 105952 200.312000000 7017 Q R 339044731 + 8 [fio] 8,0 0 105953 200.312000000 7017 B R 339044731 + 8 [fio] 8,0 0 105954 200.312000000 7017 G R 339044731 + 8 [fio] As you see, there is a lot of "B" - back merges according to documentation. But in final results: CPU0 (8,0): Reads Queued: 13,244, 53,084KiB Writes Queued: 42, 188KiB Read Dispatches: 13,243, 53,080KiB Write Dispatches: 26, 120KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 13,243, 53,080KiB Writes Completed: 26, 120KiB Read Merges: 1 Write Merges: 4 Read depth: 2 Write depth: 2 IO unplugs: 13,243 Timer unplugs: 6 Throughput (R/W): 258KiB/s / 0KiB/s Events (8,0): 106,136 entries Skips: 0 forward (0 - 0.0%) Only one read merge? So the first question is why does this happen? And the second one. As you can see fio produces randread, so actually not a lot of merges should be there. But there is a plenty of "B". Thank you in advance for your comments, Vasily. - To unsubscribe from this list: send the line "unsubscribe linux-btrace" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
