Thread (1 message) 1 message, 1 author, 2020-02-03

Re: [PATCH] blk-mq: fix selecting software ctx for request

From: Ming Lei <hidden>
Date: 2020-02-03 12:30:04
Also in: lkml

On Mon, Feb 03, 2020 at 06:28:15PM +0800, Hillf Danton wrote:
Hi Ming

On Mon, 3 Feb 2020 17:16:02 +0800 Ming Lei wrote:
quoted
On Sun, Feb 02, 2020 at 06:20:04PM +0800, Hillf Danton wrote:
quoted
Select the current cpu if it's mapped to hardware to make helpers like
blk_mq_rq_cpu() return correct value.

Signed-off-by: Hillf Danton <redacted>
---
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -454,7 +454,10 @@ struct request *blk_mq_alloc_request_hct
 		blk_queue_exit(q);
 		return ERR_PTR(-EXDEV);
 	}
-	cpu = cpumask_first_and(alloc_data.hctx->cpumask, cpu_online_mask);
+	cpu = raw_smp_processor_id();
+	if (!cpumask_test_cpu(cpu, alloc_data.hctx->cpumask))
+		cpu = cpumask_first_and(alloc_data.hctx->cpumask,
+						cpu_online_mask);
How can you know if there is any online CPU available for this hctx?
I don't except for the current cpu.
The current CPU may not belong to hctx->cpumask for blk_mq_alloc_request_hctx(),
that is why I think this API is very weird.


Thanks, 
Ming
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help