block layer阅读记录(一)

block layer阅读记录(一)

block layer应该细分为两层 bio layer和request layer

block layer之上

访问块设备主要是通过/dev,这里存在两层映射

  1. S_IFBLK 到 kernel
  2. i_bdev 到 struct block_device

block layer属于IO stack中的一层,它的上层是 page cache,用与缓存读、buffer write相关的inode

bio layer

struct gendisk上面链接的是kernel中块设备,也同时链接的下层

bio request的简单处理

bio layer最核心的数据结构就是bio,这也是为什么叫bio layer。一个bio对象,代表一个读写命令,包含着target device,address,size这些关键信息

流程:
generic_make_request() or submit_bio() -> make_request_fn() 产生request -> blk_queue_make_request() 向request layer传递

posted @ 2021-10-27 11:39  wonder32  阅读(132)  评论(0)    收藏  举报