Messages in this thread | | | Date | Thu, 18 Nov 2010 11:19:05 +0800 | From | Wu Fengguang <> | Subject | Re: [PATCH 00/13] IO-less dirty throttling |
| |
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@fromorbit.com> 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
| |