[Question]Question about the possibility of a problem in blk_mq_complete_remote.

From: Manjong Lee
Date: Fri Dec 24 2021 - 01:03:11 EST



Dear block layer developers.

While studying the block layer code, there is something I don't understand
about the code.
It's hard to understand by myself. So I'd like to ask for your help.

I think the error can occur when the target cpu is changed to
online -> offline during the ipi operation due to the request complete
process below.

However, since the return value is not checked in the code,
it seems that a problem may occur.

So I wonder is this code the real problem or is there any other defense code?


Function path.

blk_mq_complete_request_remote
blk_mq_complete_need_ipi << Check if the cpu of rq is online
blk_mq_complete_send_ipi << Assume that the target cpu becomes offline here.
smp_call_function_single_async
<< send ipi to cpu and return -ENXIO if cpu is offline
but it doesn't check the return value.