On Thu, Nov 18, 2010 at 10:50:39AM +0800, Wu Fengguang wrote: > On Thu, Nov 18, 2010 at 09:59:00AM +0800, Andrew Morton wrote: > > On Thu, 18 Nov 2010 12:40:51 +1100 Dave Chinner <david@xxxxxxxxxxxxx> wrote: > > > > > > > > There's no point > > > waking a dirtier if all they can do is write a single page before > > > they are throttled again - IO is most efficient when done in larger > > > batches... > > > > That assumes the process was about to do another write. That's > > reasonable on average, but a bit sad for interactive/rtprio tasks. At > > some stage those scheduler things should be brought into the equation. > > The interactive/rtprio tasks are given 1/4 bonus in > global_dirty_limits(). So when there are lots of heavy dirtiers, > the interactive/rtprio tasks will get soft throttled at > (6~8)*bdi_bandwidth. We can increase that to (12~16)*bdi_bandwidth > or whatever. Even better :) It seems that this break in balance_dirty_pages() will make them throttle free, unless they themselves generate dirty data faster than the disk can write: if (nr_dirty <= (background_thresh + dirty_thresh) / 2) break; 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