OSDN Git Service

blk-mq: remove the get_cpu/put_cpu pair in blk_mq_complete_request
authorChristoph Hellwig <hch@lst.de>
Thu, 11 Jun 2020 06:44:48 +0000 (08:44 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 24 Jun 2020 15:15:57 +0000 (09:15 -0600)
We don't really care if we get migrated during the I/O completion.
In the worth case we either perform an IPI that wasn't required, or
complete the request on a CPU which we just migrated off.

Reviewed-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq.c

index 3f4f227..95125bf 100644 (file)
@@ -685,7 +685,7 @@ void blk_mq_complete_request(struct request *rq)
                return;
        }
 
-       cpu = get_cpu();
+       cpu = raw_smp_processor_id();
        if (!test_bit(QUEUE_FLAG_SAME_FORCE, &q->queue_flags))
                shared = cpus_share_cache(cpu, ctx->cpu);
 
@@ -697,7 +697,6 @@ void blk_mq_complete_request(struct request *rq)
        } else {
                __blk_mq_complete_request(rq);
        }
-       put_cpu();
 }
 EXPORT_SYMBOL(blk_mq_complete_request);