RHEL 6 kernel-2.6.32-431.5.1.el6.src.rpm から。
Field No. 変数 簡単な説明 タイプ 単位 関数
1 MAJOR(part_devt(hd)) メジャー番号
2 MINOR(part_devt(hd) マイナー番号
3 disk_name(gp, hd->partno, buf) ディスク名
4 ios[0] 完了済み読み込みIO数 カウンター 個 blk_account_io_done
5 merges[0] マージ済み読み込みIO数 カウンター 個 drive_stat_acct
6 sectors[0] 完了済み読み込みセクター数 カウンター 個 blk_account_io_completion
7 ticks[0] 読み込みで使用された秒数 カウンター ミリ秒 blk_account_io_done
8 ios[1] 完了済み書き込みIO数 カウンター 個 blk_account_io_done
9 merges[1] マージ済み書き込みIO数 カウンター 個 drive_stat_acct
10 sectors[1] 完了済み書き込みセクター数 カウンター 個 blk_account_io_completion
11 ticks[1]) 書き込みで使用された秒数 カウンター ミリ秒 blk_account_io_done
12 part_in_flight(hd) 実行中のIO数 ゲージ 個 drive_stat_acct,blk_account_io_done
13 io_ticks IOにかかった時間 カウンター ミリ秒 drive_stat_acct
14 time_in_queue キューにIOがあった合計時間 (in_flight x io_ticks の合計) カウンター ミリ秒 drive_stat_acct
blk_finish_request
->blk_account_io_done
─────────────────────
2003 unsigned long duration = jiffies - req->start_time;
2011 part_stat_inc(cpu, part, ios[rw]);
2012 part_stat_add(cpu, part, ticks[rw], duration);
2013 part_round_stats(cpu, part);
2014 part_dec_in_flight(part, rw);
2015
─────────────────────
blk_update_request
->blk_account_io_completion
──────────────────────────
1981static void blk_account_io_completion(struct request *req, unsigned int bytes)
1982{
1983 if (blk_do_io_stat(req)) {
1984 const int rw = rq_data_dir(req);
1985 struct hd_struct *part;
1986 int cpu;
1987
1988 cpu = part_stat_lock();
1989 part = disk_map_sector_rcu(req->rq_disk, blk_rq_pos(req));
1990 part_stat_add(cpu, part, sectors[rw], bytes >> 9);
1991 part_stat_unlock();
1992 }
1993}
──────────────────────────
blk_insert_request
blk_queue_bio
blk_insert_cloned_request
->drive_stat_acct
──────────────────────────
1199static void part_round_stats_single(int cpu, struct hd_struct *part,
1200 unsigned long now)
1201{
1202 if (now == part->stamp)
1203 return;
1204
1205 if (part_in_flight(part)) {
1206 __part_stat_add(cpu, part, time_in_queue,
1207 part_in_flight(part) * (now - part->stamp));
1208 __part_stat_add(cpu, part, io_ticks, (now - part->stamp));
1209 }
1210 part->stamp = now;
1211}
──────────────────────────