Linux block IO
文章平均质量分 82
星空探索
linux
展开
-
IO 上下文 io_context
io_context原创 2017-03-05 09:40:38 · 2959 阅读 · 0 评论 -
初始化请求blk_rq_init
blk_rq_init()1. __get_request2. blk_kick_flush3. clone_old_rq4. ide_prep_sense5. scsi_ioctl_resetvoid blk_rq_init(struct request_queue *q, struct request *rq){ memset(rq, 0, size原创 2017-03-05 14:09:29 · 424 阅读 · 0 评论 -
__blk_run_queue
1. aoe_end_request2. blk_delay_work3. blk_start_queue4. blk_run_queue5. __blk_drain_queue6. blk_queue_bio7. blk_insert_cloned_request8. queue_unplugged9. blk_post_runtime_resume10. b原创 2017-03-05 12:49:03 · 728 阅读 · 0 评论 -
blk_start_request
void blk_start_request(struct request *req){ blk_dequeue_request(req); /* * We are now handing the request to the hardware, initialize * resid_len to full count and add the timeout han原创 2017-03-05 12:43:14 · 972 阅读 · 0 评论 -
blk_peek_request
1. blk_fetch_request/** * blk_peek_request - peek at the top of a request queue * @q: request queue to peek at * * Description: * Return the request at the top of @q. The returned原创 2017-03-05 12:39:33 · 790 阅读 · 0 评论 -
__elv_add_request
1. add_acct_request(blk_insert_cloned_request, blk_queue_bio)2. blk_flush_plug_list3. blk_execute_rq_nowait4. elv_requeue_request5. elv_add_request6. ide_pm_execute_rqvoid __elv_add_re原创 2017-03-05 12:34:03 · 633 阅读 · 0 评论 -
blk_requeue_request
blk_requeue_request:void blk_requeue_request(struct request_queue *q, struct request *rq){ blk_delete_timer(rq); blk_clear_rq_complete(rq); trace_block_rq_requeue(q, rq); if (rq->cmd_fla原创 2017-03-05 12:26:09 · 763 阅读 · 0 评论 -
cfq_init
static int __init cfq_init(void){ int ret;#ifdef CONFIG_CFQ_GROUP_IOSCHED ret = blkcg_policy_register(&blkcg_policy_cfq); if (ret) return ret;#else cfq_group_idle = 0;#endif原创 2017-03-05 12:13:59 · 178 阅读 · 0 评论 -
struct blkcg_policy
struct blkcg_policystruct blkcg_policy { int plid; /* cgroup files for the policy */ struct cftype *dfl_cftypes; struct cftype *legacy_cftypes; /* operations */ blkcg_pol_allo原创 2017-03-05 12:07:15 · 655 阅读 · 0 评论 -
struct elevator_queue
struct elevator_queue{ struct elevator_type *type; void *elevator_data; struct kobject kobj; struct mutex sysfs_lock; unsigned int registered:1; DECLARE_HASHTABLE(hash, ELV_HASH_BITS);原创 2017-03-05 11:48:02 · 507 阅读 · 0 评论 -
struct request
/* * Try to put the fields that are referenced together in the same cacheline. * * If you modify this structure, make sure to update blk_rq_init() and * especially blk_mq_rq_ctx_init() to take原创 2017-03-05 11:30:32 · 1761 阅读 · 1 评论 -
struct request_queue
struct request_queue { /* * Together with queue_head for cacheline sharing */ struct list_head queue_head; struct request *last_merge; struct elevator_queue *elevator; int nr_rqs[2]原创 2017-03-05 11:26:20 · 1195 阅读 · 0 评论 -
submit_bio
SUBMIT原创 2017-03-05 11:21:45 · 1750 阅读 · 0 评论 -
struct io_cq
ioc_lookup_icq原创 2017-03-05 10:08:45 · 486 阅读 · 0 评论 -
blk_init_queue
mm_init原创 2017-03-05 10:50:38 · 2731 阅读 · 0 评论 -
get a free request
IO原创 2017-03-05 10:30:10 · 664 阅读 · 0 评论 -
Linux buffer_head
enum bh_state_bits { BH_Uptodate, /* Contains valid data */ BH_Dirty, /* Is dirty */ BH_Lock, /* Is locked */ BH_Req, /* Has been submitted for I/O */原创 2018-01-07 18:00:43 · 778 阅读 · 0 评论