Bio reqeust requestqueue
Retired DISLab
(버전 사이의 차이)
(새 문서: <uml> class bio1 << (S,#FF7700) >> { *bi_next : struct bio *bi_bdev : struct block_device bi_flags : unsigned long bi_rw : unsigned long bi_iter : struct bvec_iter bi_phys_segments...) |
|||
(사용자 2명의 중간의 편집 8개 숨겨짐) | |||
1번째 줄: | 1번째 줄: | ||
<uml> | <uml> | ||
class bio1 << (S,#FF7700) >> { | class bio1 << (S,#FF7700) >> { | ||
− | + | bi_next : struct bio * | |
− | + | bi_bdev : struct block_device * | |
− | + | ||
bi_rw : unsigned long | bi_rw : unsigned long | ||
− | bi_iter : struct bvec_iter | + | bi_iter : struct bvec_iter |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
bi_inline_vecs[0] : struct bio_vec | bi_inline_vecs[0] : struct bio_vec | ||
+ | ... | ||
} | } | ||
bio1 -right-> bio2 : bi_next | bio1 -right-> bio2 : bi_next | ||
+ | bio1 --> bio_vec1 : bi_inline_vecs[0] (Index : bi_iter->bi_idx) | ||
+ | bio1 --> bio_vec2 : bi_inline_vecs[1] (Index : bi_iter->bi_idx) | ||
− | class bio2 << (S,#FF7700) >> { | + | class "bio" as bio2 << (S,#FF7700) >> { |
− | + | bi_next : struct bio * | |
− | + | bi_bdev : struct block_device * | |
− | + | ||
bi_rw : unsigned long | bi_rw : unsigned long | ||
− | bi_iter : struct bvec_iter | + | bi_iter : struct bvec_iter |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
bi_inline_vecs[0] : struct bio_vec | bi_inline_vecs[0] : struct bio_vec | ||
+ | ... | ||
} | } | ||
bio2 --> bio2 : bi_next | bio2 --> bio2 : bi_next | ||
+ | bio2 --> bio_vec3 : bi_inline_vecs[0] (Index : bi_iter->bi_idx) | ||
− | class bio_vec1 << (S,#FF7700) >> { | + | class "bio_vec" as bio_vec1 << (S,#FF7700) >> { |
− | + | bv_page : struct page * | |
− | bv_len : unsigned int | + | bv_len : unsigned int |
− | bv_offset : unsigned int | + | bv_offset : unsigned int |
} | } | ||
− | |||
− | |||
− | class bio_vec2 << (S,#FF7700) >> { | + | class "bio_vec" as bio_vec2 << (S,#FF7700) >> { |
− | + | bv_page : struct page * | |
bv_len : unsigned int | bv_len : unsigned int | ||
bv_offset : unsigned int | bv_offset : unsigned int | ||
59번째 줄: | 38번째 줄: | ||
− | class bio_vec3 << (S,#FF7700) >> { | + | class "bio_vec" as bio_vec3 << (S,#FF7700) >> { |
− | + | bv_page : struct page * | |
bv_len : unsigned int | bv_len : unsigned int | ||
bv_offset : unsigned int | bv_offset : unsigned int | ||
} | } | ||
− | + | ||
class request_queue << (S,#FF7700) >> { | class request_queue << (S,#FF7700) >> { | ||
− | + | elevator : struct elevator_queue * | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
root_rl : struct request_list | root_rl : struct request_list | ||
− | + | request_fn : request_fn_proc * | |
− | + | prep_rq_fn : prep_rq_fn * | |
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
delay_work : struct delayed_work | delay_work : struct delayed_work | ||
− | + | ... | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
request_queue -right-> request : root_rl | request_queue -right-> request : root_rl | ||
146번째 줄: | 58번째 줄: | ||
− | class request << (S,#FF7700) | + | class request << (S,#FF7700) >> { |
− | + | q : struct request_queue * | |
− | + | bio : struct bio * | |
− | + | biotail : struct bio * | |
− | + | ... | |
− | + | ||
− | + | ||
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
request -left-> request_queue : *q | request -left-> request_queue : *q | ||
request --> bio1 : *bio | request --> bio1 : *bio | ||
request --> bio2 : *bio_tail | request --> bio2 : *bio_tail | ||
+ | |||
+ | |||
+ | |||
+ | class page << (S,#FF7700) >> { | ||
+ | private : unsigned long | ||
+ | } | ||
+ | bio_vec1 --> page : bv_page | ||
</uml> | </uml> | ||
+ | a |
2014년 5월 15일 (목) 14:19 현재 판
a