#!/usr/bin/bpftrace #include #include BEGIN { printf("Tracing submit bio vcnt... Hit Ctrl-C to end.\n"); } kprobe:__writepage, kprobe:move_to_new_page, kprobe:do_writepages, kprobe:write_one_page { @wb[tid] = 1; } kretprobe:__writepage, kretprobe:move_to_new_page, kretprobe:do_writepages, kretprobe:write_one_page { @wb[tid] = 0; } kprobe:submit_bio /@wb[tid] == 1/ { $bio = (struct bio *)arg0; $gd = (struct gendisk *)$bio->bi_disk; $vcnt= $bio->bi_vcnt; $maxvcnt= $bio->bi_max_vecs; $size= $bio->bi_iter.bi_size; @["vcnt", $gd->disk_name] = hist($vcnt); @["maxvcnt", $gd->disk_name] = hist($maxvcnt); @["size", $gd->disk_name] = hist($size); } END { clear(@wb); }