On Sun, Dec 11, 2022 at 10:50:03PM -0800, Christoph Hellwig wrote: > On Thu, Dec 08, 2022 at 09:48:23AM -0700, Jens Axboe wrote: > > > The doc comment for blk_mq_set_request_complete() mentions this being > > > used in ->queue_rq(), but that's not the case here. Does the doc comment > > > need to be updated if we're using the function in a different way? > > > > Looks like it's a bit outdated... > > I think the comment is still entirely correct. > > > > > > I'm not familiar enough with the Linux block APIs, but this feels weird > > > to me. Shouldn't blk_mq_end_request_batch(iob) take care of this for us? > > > Why does it set the state to IDLE instead of COMPLETE? > > > > > > I think Jens can confirm whether we really want all drivers that use > > > polling and io_comp_batch to manually call > > > blk_mq_set_request_complete(). > > > > Should not be a need to call blk_mq_set_request_complete() directly in > > the driver for this. > > Exactly. Polling or not, drivers should go through the normal completion > interface, that is blk_mq_complete_request or the lower-level options > blk_mq_complete_request_remote and blk_mq_complete_request_direct. Hi all, Thanks for the comment. It was the wrong use of the function... I will use blk_mq_complete_request_remote() instead of blk_mq_set_request_complete() and send next version soon. Regards, Suwan Kim