> > Because task_ratelimit_0 is initial value to begin with and we will > > keep on coming with new value every 200ms, we should be able to write > > above as follows. > > > > write_bw > > bdi->dirty_ratelimit_n = bdi->dirty_ratelimit_n-1 * -------- (8) > > dirty_bw > > > > Effectively we start with an initial value of task_ratelimit_0 and > > then keep on updating it based on rate change feedback every 200ms. Ah sorry, based on the reply to Peter, there is no inherent dependency between balanced_rate_n and balanced_rate_(n-1). bdi->dirty_ratelimit does track balanced_rate in small steps, and hence will have some relationship with its previous value other than equation (8). So, although you may conduct equation (8) for balanced_rate, we'd better not understand things in that way. Keep this fundamental formula in mind and don't try to complicate it: balanced_rate = task_ratelimit_200ms * write_bw / dirty_rate Thanks, Fengguang -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html