In case of shared tags and none io sched, batched completion still may be run into, and hctx->nr_active is accounted when getting driver tag, so it has to be updated in blk_mq_end_request_batch(). Otherwise, hctx->nr_active may become same with queue depth, then hctx_may_queue...
In case of blk_mq_is_sbitmap_shared(), we should test QUEUE_FLAG_HCTX_ACTIVE against q->queue_flags instead of BLK_MQ_S_TAG_ACTIVE. So fix it. Cc: John Garry <john.garry@huawei.com> Cc: Kashyap Desai <kashyap.desai@broadcom.com> Fixes: f1b49fd ("blk-mq: Record active_que...
+static int blk_mq_hw_ctx_size(struct blk_mq_tag_set *tag_set) { - int node; + int hw_ctx_size = sizeof(struct blk_mq_hw_ctx); + + BUILD_BUG_ON(ALIGN(offsetof(struct blk_mq_hw_ctx, srcu), + __alignof__(struct blk_mq_hw_ctx)) != + sizeof(struct blk_mq_hw_ctx));...
System crash in blk_mq_free_request() following NVMe controller reset due to NULL mq_hctx. Example 1: Raw nvme nvme0: I/O 71 QID 1 timeout, aborting nvme nvme0: Abort status: 0x0 nvme nvme0: I/O 71 QID 1 timeout, reset controller nvme nvme0: 2/0/0 default/read/poll queues...
> > + blk_free_flush_queue(hctx->fq); > > + sbitmap_free(&hctx->ctx_map); > > free_cpumask_var(hctx->cpumask); > > kfree(hctx->ctxs); > > kfree(hctx); > > diff --git a/block/blk-mq.c b/block/blk-mq.c ...
方勇目前担任合肥易禄顺财务信息咨询有限公司、宿州市聚呐财务咨询有限责任公司法定代表人,同时担任合肥易禄顺财务信息咨询有限公司执行董事兼总经理,宿州市聚呐财务咨询有限责任公司执行董事兼总经理;二、方勇投资情况:方勇目前是宿州市聚呐财务咨询有限责任公司直接控股股东,持股比例为100%;目前方勇投资宿州市聚呐财务咨询...
blk_crypto_free_request(rq); blk_pm_mark_last_busy(rq); rq->mq_hctx = NULL;if (rq->rq_flags & RQF_MQ_INFLIGHT) __blk_mq_dec_active_requests(hctx);if (rq->tag != BLK_MQ_NO_TAG) blk_mq_put_tag(hctx->tags, ctx, rq->tag); ...
blk_queue_exit(q); return ERR_PTR(-EWOULDBLOCK); ret = -EWOULDBLOCK; goto out_queue_exit; }return rq;out_queue_exit: blk_queue_exit(q); return ERR_PTR(ret); } EXPORT_SYMBOL_GPL(blk_mq_alloc_request_hctx);0 comments on commit c8712c6 Please sign in to comment. Footer...