block layer

created : 2020-06-16T10:14:58+00:00
modified : 2020-06-16T10:34:20+00:00

Block Layer

  • Linux 에서 device에 입출력 할때 request를 처리하는 layer
  • https://lwn.net/Articles/736534/
  • /dev 에 있는 block device 에 접근할때 사용

함수 호출 순서

  • 출처 : http://egloos.zum.com/moonkh/v/4841748
  • read(), write() -> bio 구조체를 생성하고 필요한 정보를 할당 -> submit_bio() 호출 -> generic_make_request() 호출 - bio 구조체를 I/O 스케줄러에 등록 -> _make_request() 호출, bio 를 request 로 만들고 request_queue 에 넣는다.

submit_bio() 구현부

  • block/blk-core.c
  • bootlin 링크 : https://elixir.bootlin.com/linux/latest/source/block/blk-core.c#L1139

generic_make_request()

  • blcok/blk-core.c
  • bootlin 링크 : https://elixir.bootlin.com/linux/latest/source/block/blk-core.c#L990