> Thanks for the patch. I can reproduce it. I am wondering that why are you > doing so many checks. Can't we just check if throttle group is empty or > not. If it is empty and slice has expired, then start a new slice. If > throttle group is not empty, then we know slice has to be an active slice > and should be extended (despite the fact that it might have expired > because timer function got called later than we expected it to be). Yes, only checking the empty status of bio queue is enough. The check of dispatched ios and bytes was used to ensure the time slice had not been used, but the logic is incorrect: even if the time slice had been used, the extend of time slice is needed if the timer slacked. > Can you please try following patch. It seems to resolve the issue for me. It works for me. -- To unsubscribe from this list: send the line "unsubscribe linux-block" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html