Message ID | 20240903093457.35752-1-zhanghui31@xiaomi.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] block: move non sync requests complete flow to softirq | expand |
diff --git a/block/blk-mq.c b/block/blk-mq.c index e3c3c0c21b55..06b232edff11 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1193,6 +1193,8 @@ static void blk_mq_raise_softirq(struct request *rq) bool blk_mq_complete_request_remote(struct request *rq) { + blk_opf_t is_sync = op_is_sync(rq->cmd_flags); + WRITE_ONCE(rq->state, MQ_RQ_COMPLETE); /* @@ -1210,7 +1212,7 @@ bool blk_mq_complete_request_remote(struct request *rq) return true; } - if (rq->q->nr_hw_queues == 1) { + if ((rq->q->nr_hw_queues == 1) || !is_sync) { blk_mq_raise_softirq(rq); return true; }