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 if (hctx->flags & BLK_MQ_F_BLOCKING) in blk_mq_hw_sysfs_release()
40 cleanup_srcu_struct(hctx->srcu); in blk_mq_hw_sysfs_release()
41 blk_free_flush_queue(hctx->fq); in blk_mq_hw_sysfs_release()
42 sbitmap_free(&hctx->ctx_map); in blk_mq_hw_sysfs_release()
43 free_cpumask_var(hctx->cpumask); in blk_mq_hw_sysfs_release()
44 kfree(hctx->ctxs); in blk_mq_hw_sysfs_release()
45 kfree(hctx); in blk_mq_hw_sysfs_release()
106 struct blk_mq_hw_ctx *hctx; in blk_mq_hw_sysfs_show() local
111 hctx = container_of(kobj, struct blk_mq_hw_ctx, kobj); in blk_mq_hw_sysfs_show()
112 q = hctx->queue; in blk_mq_hw_sysfs_show()
118 res = entry->show(hctx, page); in blk_mq_hw_sysfs_show()
128 struct blk_mq_hw_ctx *hctx; in blk_mq_hw_sysfs_store() local
133 hctx = container_of(kobj, struct blk_mq_hw_ctx, kobj); in blk_mq_hw_sysfs_store()
134 q = hctx->queue; in blk_mq_hw_sysfs_store()
140 res = entry->store(hctx, page, length); in blk_mq_hw_sysfs_store()
145 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
148 return sprintf(page, "%u\n", hctx->tags->nr_tags); in blk_mq_hw_sysfs_nr_tags_show()
151 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
154 return sprintf(page, "%u\n", hctx->tags->nr_reserved_tags); in blk_mq_hw_sysfs_nr_reserved_tags_show()
157 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
163 for_each_cpu(i, hctx->cpumask) { in blk_mq_hw_sysfs_cpus_show()
227 static void blk_mq_unregister_hctx(struct blk_mq_hw_ctx *hctx) in blk_mq_unregister_hctx() argument
232 if (!hctx->nr_ctx) in blk_mq_unregister_hctx()
235 hctx_for_each_ctx(hctx, ctx, i) in blk_mq_unregister_hctx()
238 kobject_del(&hctx->kobj); in blk_mq_unregister_hctx()
241 static int blk_mq_register_hctx(struct blk_mq_hw_ctx *hctx) in blk_mq_register_hctx() argument
243 struct request_queue *q = hctx->queue; in blk_mq_register_hctx()
247 if (!hctx->nr_ctx) in blk_mq_register_hctx()
250 ret = kobject_add(&hctx->kobj, q->mq_kobj, "%u", hctx->queue_num); in blk_mq_register_hctx()
254 hctx_for_each_ctx(hctx, ctx, i) { in blk_mq_register_hctx()
255 ret = kobject_add(&ctx->kobj, &hctx->kobj, "cpu%u", ctx->cpu); in blk_mq_register_hctx()
265 struct blk_mq_hw_ctx *hctx; in blk_mq_unregister_dev() local
270 queue_for_each_hw_ctx(q, hctx, i) in blk_mq_unregister_dev()
271 blk_mq_unregister_hctx(hctx); in blk_mq_unregister_dev()
280 void blk_mq_hctx_kobj_init(struct blk_mq_hw_ctx *hctx) in blk_mq_hctx_kobj_init() argument
282 kobject_init(&hctx->kobj, &blk_mq_hw_ktype); in blk_mq_hctx_kobj_init()
314 struct blk_mq_hw_ctx *hctx; in __blk_mq_register_dev() local
326 queue_for_each_hw_ctx(q, hctx, i) { in __blk_mq_register_dev()
327 ret = blk_mq_register_hctx(hctx); in __blk_mq_register_dev()
349 struct blk_mq_hw_ctx *hctx; in blk_mq_sysfs_unregister() local
356 queue_for_each_hw_ctx(q, hctx, i) in blk_mq_sysfs_unregister()
357 blk_mq_unregister_hctx(hctx); in blk_mq_sysfs_unregister()
365 struct blk_mq_hw_ctx *hctx; in blk_mq_sysfs_register() local
372 queue_for_each_hw_ctx(q, hctx, i) { in blk_mq_sysfs_register()
373 ret = blk_mq_register_hctx(hctx); in blk_mq_sysfs_register()