On 9/6/24 8:49 PM, ZhangHui wrote: > From: zhanghui <zhanghui31@xxxxxxxxxx> > > Currently, for a controller that supports multiple queues, like UFS4.0, > the mq_ops->complete is executed in the interrupt top-half. Therefore, > the file system's end io is executed during the request completion process, > such as f2fs_write_end_io on smartphone. > > However, we found that the execution time of the file system end io > is strongly related to the size of the bio and the processing speed > of the CPU. Because the file system's end io will traverse every page > in bio, this is a very time-consuming operation. > > We measured that the 80M bio write operation on the little CPU will > cause the execution time of the top-half to be greater than 100ms, > which will undoubtedly affect interrupt response latency. > > Let's fix this issue by moving non sync requests completion to softirq > context, and keeping sync requests completion in the IRQ top-half context. You keep ignoring the feedback, and hence I too shall be ignoring this patch going forward then. The key issue here is that the completion takes so long, and adding a heuristic that equates not-sync with latency-not-important is pretty bogus and not a good way to attempt to work around it. -- Jens Axboe