cfq_init

来源:互联网 发布:数据库用什么软件好 编辑:程序博客网 时间:2024/05/16 01:29
static int __init cfq_init(void){int ret;#ifdef CONFIG_CFQ_GROUP_IOSCHEDret = blkcg_policy_register(&blkcg_policy_cfq);if (ret)return ret;#elsecfq_group_idle = 0;#endifret = -ENOMEM;cfq_pool = KMEM_CACHE(cfq_queue, 0);if (!cfq_pool)goto err_pol_unreg;ret = elv_register(&iosched_cfq);if (ret)goto err_free_pool;return 0;err_free_pool:kmem_cache_destroy(cfq_pool);err_pol_unreg:#ifdef CONFIG_CFQ_GROUP_IOSCHEDblkcg_policy_unregister(&blkcg_policy_cfq);#endifreturn ret;}
static void __exit cfq_exit(void){#ifdef CONFIG_CFQ_GROUP_IOSCHEDblkcg_policy_unregister(&blkcg_policy_cfq);#endifelv_unregister(&iosched_cfq);kmem_cache_destroy(cfq_pool);}module_init(cfq_init);module_exit(cfq_exit);
#ifdef CONFIG_CFQ_GROUP_IOSCHEDstatic struct blkcg_policy blkcg_policy_cfq = {.dfl_cftypes= cfq_blkcg_files,.legacy_cftypes= cfq_blkcg_legacy_files,.cpd_alloc_fn= cfq_cpd_alloc,.cpd_init_fn= cfq_cpd_init,.cpd_free_fn= cfq_cpd_free,.cpd_bind_fn= cfq_cpd_bind,.pd_alloc_fn= cfq_pd_alloc,.pd_init_fn= cfq_pd_init,.pd_offline_fn= cfq_pd_offline,.pd_free_fn= cfq_pd_free,.pd_reset_stats_fn= cfq_pd_reset_stats,};#endif
static struct elevator_type iosched_cfq = {.ops = {.elevator_merge_fn = cfq_merge,.elevator_merged_fn =cfq_merged_request,.elevator_merge_req_fn =cfq_merged_requests,.elevator_allow_bio_merge_fn =cfq_allow_bio_merge,.elevator_allow_rq_merge_fn =cfq_allow_rq_merge,.elevator_bio_merged_fn =cfq_bio_merged,.elevator_dispatch_fn =cfq_dispatch_requests,.elevator_add_req_fn =cfq_insert_request,.elevator_activate_req_fn =cfq_activate_request,.elevator_deactivate_req_fn =cfq_deactivate_request,.elevator_completed_req_fn =cfq_completed_request,.elevator_former_req_fn =elv_rb_former_request,.elevator_latter_req_fn =elv_rb_latter_request,.elevator_init_icq_fn =cfq_init_icq,.elevator_exit_icq_fn =cfq_exit_icq,.elevator_set_req_fn =cfq_set_request,.elevator_put_req_fn =cfq_put_request,.elevator_may_queue_fn =cfq_may_queue,.elevator_init_fn =cfq_init_queue,.elevator_exit_fn =cfq_exit_queue,.elevator_registered_fn =cfq_registered_queue,},.icq_size=sizeof(struct cfq_io_cq),.icq_align=__alignof__(struct cfq_io_cq),.elevator_attrs =cfq_attrs,.elevator_name="cfq",.elevator_owner =THIS_MODULE,};
#define CFQ_ATTR(name) \__ATTR(name, S_IRUGO|S_IWUSR, cfq_##name##_show, cfq_##name##_store)static struct elv_fs_entry cfq_attrs[] = {CFQ_ATTR(quantum),CFQ_ATTR(fifo_expire_sync),CFQ_ATTR(fifo_expire_async),CFQ_ATTR(back_seek_max),CFQ_ATTR(back_seek_penalty),CFQ_ATTR(slice_sync),CFQ_ATTR(slice_sync_us),CFQ_ATTR(slice_async),CFQ_ATTR(slice_async_us),CFQ_ATTR(slice_async_rq),CFQ_ATTR(slice_idle),CFQ_ATTR(slice_idle_us),CFQ_ATTR(group_idle),CFQ_ATTR(group_idle_us),CFQ_ATTR(low_latency),CFQ_ATTR(target_latency),CFQ_ATTR(target_latency_us),__ATTR_NULL};
                                             
0 0
原创粉丝点击