Skip to content

Commit

Permalink
blk-mq: remove raise_blk_irq
Browse files Browse the repository at this point in the history
By open coding raise_blk_irq in the only caller, and replacing the
ifdef CONFIG_SMP with an IS_ENABLED check the flow in the caller
can be significantly simplified.

Reviewed-by: Daniel Wagner <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
  • Loading branch information
Christoph Hellwig authored and axboe committed Jun 24, 2020
1 parent 115243f commit dea6f39
Showing 1 changed file with 10 additions and 30 deletions.
40 changes: 10 additions & 30 deletions block/blk-mq.c
Original file line number Diff line number Diff line change
Expand Up @@ -613,37 +613,11 @@ static void blk_mq_trigger_softirq(struct request *rq)
raise_softirq_irqoff(BLOCK_SOFTIRQ);
}

#ifdef CONFIG_SMP
static void trigger_softirq(void *data)
{
blk_mq_trigger_softirq(data);
}

/*
* Setup and invoke a run of 'trigger_softirq' on the given cpu.
*/
static int raise_blk_irq(int cpu, struct request *rq)
{
if (cpu_online(cpu)) {
call_single_data_t *data = &rq->csd;

data->func = trigger_softirq;
data->info = rq;
data->flags = 0;

smp_call_function_single_async(cpu, data);
return 0;
}

return 1;
}
#else /* CONFIG_SMP */
static int raise_blk_irq(int cpu, struct request *rq)
{
return 1;
}
#endif

static int blk_softirq_cpu_dead(unsigned int cpu)
{
/*
Expand Down Expand Up @@ -688,11 +662,17 @@ static void __blk_complete_request(struct request *req)
* support multiple interrupts, so current CPU is unique actually. This
* avoids IPI sending from current CPU to the first CPU of a group.
*/
if (ccpu == cpu || shared) {
do_local:
if (IS_ENABLED(CONFIG_SMP) &&
ccpu != cpu && !shared && cpu_online(ccpu)) {
call_single_data_t *data = &req->csd;

data->func = trigger_softirq;
data->info = req;
data->flags = 0;
smp_call_function_single_async(cpu, data);
} else {
blk_mq_trigger_softirq(req);
} else if (raise_blk_irq(ccpu, req))
goto do_local;
}

local_irq_restore(flags);
}
Expand Down

0 comments on commit dea6f39

Please sign in to comment.