I realised that I over-thought the original logic. The attached patch is much simpler - write back dirty cache entries at the migration threshold rate when we are over the low watermark, and we write back as fast as possible when we go over the high watermark. The current behaviour can be replicated by setting the high watermark to 100, and the low watermark to 0. regards Steven