diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-08-25 10:40:12 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-08-25 10:40:12 -0700 |
commit | e33f2d238e2e53e264c758c0849423a9308eb63e (patch) | |
tree | 8137292b733fe0f8d10b8d004f2c58a9740c829b /mm | |
parent | be5378f3baabb5667508c42c56b4281f967d6861 (diff) | |
parent | bb0822954aab7d23a3f902c2a103ee0242f6046e (diff) |
Merge branch 'urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/writeback
* 'urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/writeback:
squeeze max-pause area and drop pass-good area
Diffstat (limited to 'mm')
-rw-r--r-- | mm/page-writeback.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c index d1960744f88..0e309cd1b5b 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -754,21 +754,10 @@ static void balance_dirty_pages(struct address_space *mapping, * 200ms is typically more than enough to curb heavy dirtiers; * (b) the pause time limit makes the dirtiers more responsive. */ - if (nr_dirty < dirty_thresh + - dirty_thresh / DIRTY_MAXPAUSE_AREA && + if (nr_dirty < dirty_thresh && + bdi_dirty < (task_bdi_thresh + bdi_thresh) / 2 && time_after(jiffies, start_time + MAX_PAUSE)) break; - /* - * pass-good area. When some bdi gets blocked (eg. NFS server - * not responding), or write bandwidth dropped dramatically due - * to concurrent reads, or dirty threshold suddenly dropped and - * the dirty pages cannot be brought down anytime soon (eg. on - * slow USB stick), at least let go of the good bdi's. - */ - if (nr_dirty < dirty_thresh + - dirty_thresh / DIRTY_PASSGOOD_AREA && - bdi_dirty < bdi_thresh) - break; /* * Increase the delay for each loop, up to our previous |