因为自己写的块设备驱动程序在文件系统的下一层,所以可以通过监视进去块设备的bio的一些数据,来窥视一些操作的内部实现。 比如: add_disk,mkfs.ext3,mount ,umount 等
使用的块设备的大小为 10G
add_disk时,进入make_request的数据如下:
rw :READ,bi_sector : 20971392,bi_size :4096
rw :READ,bi_sector : 20971512,bi_size :4096
rw :READ,bi_sector : 20971456,bi_size :4096
rw :READ,bi_sector : 20971264,bi_size :4096
rw :READ,bi_sector : 20971504,bi_size :4096
rw :READ,bi_sector : 20971120,bi_size :4096
rw :READ,bi_sector : 0,bi_size :4096
rw :READ,bi_sector : 8,bi_size :4096
rw :READ,bi_sector : 16,bi_size :4096
rw :READ,bi_sector : 24,bi_size :4096
rw :READ,bi_sector : 32,bi_size :4096
rw :READ,bi_sector : 40,bi_size :4096
rw :READ,bi_sector : 48,bi_size :4096
rw :READ,bi_sector : 56,bi_size :4096
rw :READ,bi_sector : 64,bi_size :4096
rw :READ,bi_sector : 72,bi_size :4096
rw :READ,bi_sector : 80,bi_size :4096
rw :READ,bi_sector : 88,bi_size :4096
rw :READ,bi_sector : 96,bi_size :4096
rw :READ,bi_sector : 104,bi_size :4096
rw :READ,bi_sector : 112,bi_size :4096
rw :READ,bi_sector : 120,bi_size :4096
rw :READ,bi_sector : 128,bi_size :4096
rw :READ,bi_sector : 512,bi_size :4096
由此可以知道,alloc_disk时,会读我们注册的块设备的头部和尾部,而且读的大小都是4K。
mkfs.ext3
该操作会有大量的写io,每个大小都是4K
mount:
rw :WRITE,bi_sector : 0,bi_size :4096
rw :READ,bi_sector : 0,bi_size :4096
rw :READ,bi_sector : 8,bi_size :4096
rw :READ,bi_sector : 16,bi_size :4096
rw :READ,bi_sector : 24,bi_size :4096
rw :READ,bi_sector : 32,bi_size :4096
rw :READ,bi_sector : 40,bi_size :4096
rw :READ,bi_sector : 48,bi_size :4096
rw :READ,bi_sector : 56,bi_size :4096
rw :READ,bi_sector : 64,bi_size :4096
rw :READ,bi_sector : 72,bi_size :4096
rw :READ,bi_sector : 80,bi_size :4096
rw :READ,bi_sector : 88,bi_size :4096
rw :READ,bi_sector : 96,bi_size :4096
rw :READ,bi_sector : 104,bi_size :4096
rw :READ,bi_sector : 112,bi_size :4096
rw :READ,bi_sector : 120,bi_size :4096
rw :READ,bi_sector : 128,bi_size :4096
rw :READ,bi_sector : 136,bi_size :4096
rw :READ,bi_sector : 144,bi_size :4096
rw :READ,bi_sector : 152,bi_size :4096
rw :READ,bi_sector : 160,bi_size :4096
rw :READ,bi_sector : 168,bi_size :4096
rw :READ,bi_sector : 176,bi_size :4096
rw :READ,bi_sector : 184,bi_size :4096
rw :READ,bi_sector : 192,bi_size :4096
rw :READ,bi_sector : 200,bi_size :4096
rw :READ,bi_sector : 208,bi_size :4096
rw :READ,bi_sector : 216,bi_size :4096
rw :READ,bi_sector : 224,bi_size :4096
rw :READ,bi_sector : 232,bi_size :4096
rw :READ,bi_sector : 240,bi_size :4096
rw :READ,bi_sector : 248,bi_size :4096
rw :READ,bi_sector : 2,bi_size :1024
rw :READ,bi_sector : 0,bi_size :4096
rw :READ,bi_sector : 8,bi_size :4096
rw :READ,bi_sector : 5144,bi_size :4096
rw :READ,bi_sector : 9288,bi_size :4096
rw :WRITE,bi_sector : 0,bi_size :4096
umount :
rw :WRITE,bi_sector : 0,bi_size :4096