On 10/30/23 19:01, Yu Kuai wrote:
I'm afraid that is not correct, fairness can't be guranteed at all, not even with just one scsi disk. This is because there are 8 wait queues in sbitmap, and threads are waiting in roundrobin mode, and each time wake_batch tags are released, wake_batch threads of one wait queue will be woke up, regardless that some threads can't grab tag after woken up, what's worse, thoese thread will be added to the tail of waitqueue again. In the case that high io pressure under a slow disk, this behaviour will cause that io tail latency will be quite bad compared to sq from old kernel. AFAIC, disable tag sharing will definitely case some regresion, for example, one disk will high io pressure, and another disk only issure one IO at a time, disable tag sharing can improve brandwith of fist disk, however, for the latter disk, IO latency will definitely be much worse.
Hi Yu, All UFS users I know prefer that fair tag sharing is disabled for UFS devices. So I propose to proceed with this patch series and additionally to improve fair tag sharing for devices and transport layers that need an improved sharing algorithm. Thanks, Bart.