Lines Matching refs:hctx

36 	struct blk_mq_hw_ctx *hctx = container_of(kobj, struct blk_mq_hw_ctx,  in blk_mq_hw_sysfs_release()  local
39 cancel_delayed_work_sync(&hctx->run_work); in blk_mq_hw_sysfs_release()
41 if (hctx->flags & BLK_MQ_F_BLOCKING) in blk_mq_hw_sysfs_release()
42 cleanup_srcu_struct(hctx->srcu); in blk_mq_hw_sysfs_release()
43 blk_free_flush_queue(hctx->fq); in blk_mq_hw_sysfs_release()
44 sbitmap_free(&hctx->ctx_map); in blk_mq_hw_sysfs_release()
45 free_cpumask_var(hctx->cpumask); in blk_mq_hw_sysfs_release()
46 kfree(hctx->ctxs); in blk_mq_hw_sysfs_release()
47 kfree(hctx); in blk_mq_hw_sysfs_release()
112 struct blk_mq_hw_ctx *hctx; in blk_mq_hw_sysfs_show() local
117 hctx = container_of(kobj, struct blk_mq_hw_ctx, kobj); in blk_mq_hw_sysfs_show()
118 q = hctx->queue; in blk_mq_hw_sysfs_show()
126 res = entry->show(hctx, page); in blk_mq_hw_sysfs_show()
136 struct blk_mq_hw_ctx *hctx; in blk_mq_hw_sysfs_store() local
141 hctx = container_of(kobj, struct blk_mq_hw_ctx, kobj); in blk_mq_hw_sysfs_store()
142 q = hctx->queue; in blk_mq_hw_sysfs_store()
150 res = entry->store(hctx, page, length); in blk_mq_hw_sysfs_store()
155 static ssize_t blk_mq_hw_sysfs_nr_tags_show(struct blk_mq_hw_ctx *hctx, in blk_mq_hw_sysfs_nr_tags_show() argument
158 return sprintf(page, "%u\n", hctx->tags->nr_tags); in blk_mq_hw_sysfs_nr_tags_show()
161 static ssize_t blk_mq_hw_sysfs_nr_reserved_tags_show(struct blk_mq_hw_ctx *hctx, in blk_mq_hw_sysfs_nr_reserved_tags_show() argument
164 return sprintf(page, "%u\n", hctx->tags->nr_reserved_tags); in blk_mq_hw_sysfs_nr_reserved_tags_show()
167 static ssize_t blk_mq_hw_sysfs_cpus_show(struct blk_mq_hw_ctx *hctx, char *page) in blk_mq_hw_sysfs_cpus_show() argument
172 for_each_cpu(i, hctx->cpumask) { in blk_mq_hw_sysfs_cpus_show()
232 static void blk_mq_unregister_hctx(struct blk_mq_hw_ctx *hctx) in blk_mq_unregister_hctx() argument
237 if (!hctx->nr_ctx) in blk_mq_unregister_hctx()
240 hctx_for_each_ctx(hctx, ctx, i) in blk_mq_unregister_hctx()
243 kobject_del(&hctx->kobj); in blk_mq_unregister_hctx()
246 static int blk_mq_register_hctx(struct blk_mq_hw_ctx *hctx) in blk_mq_register_hctx() argument
248 struct request_queue *q = hctx->queue; in blk_mq_register_hctx()
252 if (!hctx->nr_ctx) in blk_mq_register_hctx()
255 ret = kobject_add(&hctx->kobj, q->mq_kobj, "%u", hctx->queue_num); in blk_mq_register_hctx()
259 hctx_for_each_ctx(hctx, ctx, i) { in blk_mq_register_hctx()
260 ret = kobject_add(&ctx->kobj, &hctx->kobj, "cpu%u", ctx->cpu); in blk_mq_register_hctx()
270 struct blk_mq_hw_ctx *hctx; in blk_mq_unregister_dev() local
275 queue_for_each_hw_ctx(q, hctx, i) in blk_mq_unregister_dev()
276 blk_mq_unregister_hctx(hctx); in blk_mq_unregister_dev()
285 void blk_mq_hctx_kobj_init(struct blk_mq_hw_ctx *hctx) in blk_mq_hctx_kobj_init() argument
287 kobject_init(&hctx->kobj, &blk_mq_hw_ktype); in blk_mq_hctx_kobj_init()
319 struct blk_mq_hw_ctx *hctx; in __blk_mq_register_dev() local
331 queue_for_each_hw_ctx(q, hctx, i) { in __blk_mq_register_dev()
332 ret = blk_mq_register_hctx(hctx); in __blk_mq_register_dev()
354 struct blk_mq_hw_ctx *hctx; in blk_mq_sysfs_unregister() local
361 queue_for_each_hw_ctx(q, hctx, i) in blk_mq_sysfs_unregister()
362 blk_mq_unregister_hctx(hctx); in blk_mq_sysfs_unregister()
370 struct blk_mq_hw_ctx *hctx; in blk_mq_sysfs_register() local
377 queue_for_each_hw_ctx(q, hctx, i) { in blk_mq_sysfs_register()
378 ret = blk_mq_register_hctx(hctx); in blk_mq_sysfs_register()