All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Weiner <hannes@cmpxchg.org>
To: Mel Gorman <mel@csn.ul.ie>
Cc: Christoph Hellwig <hch@infradead.org>,
	linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-mm@kvack.org, Dave Chinner <david@fromorbit.com>,
	Chris Mason <chris.mason@oracle.com>,
	Nick Piggin <npiggin@suse.de>, Rik van Riel <riel@redhat.com>,
	Wu Fengguang <fengguang.wu@intel.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Andrea Arcangeli <aarcange@redhat.com>
Subject: Re: [PATCH 8/8] vmscan: Kick flusher threads to clean pages when reclaim is encountering dirty pages
Date: Tue, 20 Jul 2010 00:48:39 +0200	[thread overview]
Message-ID: <20100719224838.GC16031@cmpxchg.org> (raw)
In-Reply-To: <20100719143737.GQ13117@csn.ul.ie>

On Mon, Jul 19, 2010 at 03:37:37PM +0100, Mel Gorman wrote:
> On Mon, Jul 19, 2010 at 10:23:49AM -0400, Christoph Hellwig wrote:
> > On Mon, Jul 19, 2010 at 02:11:30PM +0100, Mel Gorman wrote:
> > > +	/*
> > > +	 * If reclaim is encountering dirty pages, it may be because
> > > +	 * dirty pages are reaching the end of the LRU even though
> > > +	 * the dirty_ratio may be satisified. In this case, wake
> > > +	 * flusher threads to pro-actively clean some pages
> > > +	 */
> > > +	wakeup_flusher_threads(laptop_mode ? 0 : nr_dirty + nr_dirty / 2);
> > > +
> > 
> > Where is the laptop-mode magic coming from?
> > 
> 
> It comes from other parts of page reclaim where writing pages is avoided
> by page reclaim where possible. Things like this
> 
> 	wakeup_flusher_threads(laptop_mode ? 0 : total_scanned);

Actually, it's not avoiding writing pages in laptop mode, instead it
is lumping writeouts aggressively (as I wrote in my other mail,
.nr_pages=0 means 'write everything') to keep disk spinups rare and
make maximum use of them.

> although the latter can get disabled too. Deleting the magic is an
> option which would trade IO efficiency for power efficiency but my
> current thinking is laptop mode preferred reduced power.

Maybe couple your wakeup with sc->may_writepage?  It is usually false
for laptop_mode but direct reclaimers enable it at one point in
do_try_to_free_pages() when it scanned more than 150% of the reclaim
target, so you could use existing disk spin-up points instead of
introducing new ones or disabling the heuristics in laptop mode.

WARNING: multiple messages have this Message-ID (diff)
From: Johannes Weiner <hannes@cmpxchg.org>
To: Mel Gorman <mel@csn.ul.ie>
Cc: Christoph Hellwig <hch@infradead.org>,
	linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-mm@kvack.org, Dave Chinner <david@fromorbit.com>,
	Chris Mason <chris.mason@oracle.com>,
	Nick Piggin <npiggin@suse.de>, Rik van Riel <riel@redhat.com>,
	Wu Fengguang <fengguang.wu@intel.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Andrea Arcangeli <aarcange@redhat.com>
Subject: Re: [PATCH 8/8] vmscan: Kick flusher threads to clean pages when reclaim is encountering dirty pages
Date: Tue, 20 Jul 2010 00:48:39 +0200	[thread overview]
Message-ID: <20100719224838.GC16031@cmpxchg.org> (raw)
In-Reply-To: <20100719143737.GQ13117@csn.ul.ie>

On Mon, Jul 19, 2010 at 03:37:37PM +0100, Mel Gorman wrote:
> On Mon, Jul 19, 2010 at 10:23:49AM -0400, Christoph Hellwig wrote:
> > On Mon, Jul 19, 2010 at 02:11:30PM +0100, Mel Gorman wrote:
> > > +	/*
> > > +	 * If reclaim is encountering dirty pages, it may be because
> > > +	 * dirty pages are reaching the end of the LRU even though
> > > +	 * the dirty_ratio may be satisified. In this case, wake
> > > +	 * flusher threads to pro-actively clean some pages
> > > +	 */
> > > +	wakeup_flusher_threads(laptop_mode ? 0 : nr_dirty + nr_dirty / 2);
> > > +
> > 
> > Where is the laptop-mode magic coming from?
> > 
> 
> It comes from other parts of page reclaim where writing pages is avoided
> by page reclaim where possible. Things like this
> 
> 	wakeup_flusher_threads(laptop_mode ? 0 : total_scanned);

Actually, it's not avoiding writing pages in laptop mode, instead it
is lumping writeouts aggressively (as I wrote in my other mail,
.nr_pages=0 means 'write everything') to keep disk spinups rare and
make maximum use of them.

> although the latter can get disabled too. Deleting the magic is an
> option which would trade IO efficiency for power efficiency but my
> current thinking is laptop mode preferred reduced power.

Maybe couple your wakeup with sc->may_writepage?  It is usually false
for laptop_mode but direct reclaimers enable it at one point in
do_try_to_free_pages() when it scanned more than 150% of the reclaim
target, so you could use existing disk spin-up points instead of
introducing new ones or disabling the heuristics in laptop mode.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2010-07-19 22:48 UTC|newest]

Thread overview: 177+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-19 13:11 [PATCH 0/8] Reduce writeback from page reclaim context V4 Mel Gorman
2010-07-19 13:11 ` Mel Gorman
2010-07-19 13:11 ` [PATCH 1/8] vmscan: tracing: Roll up of patches currently in mmotm Mel Gorman
2010-07-19 13:11   ` Mel Gorman
2010-07-19 13:11 ` [PATCH 2/8] vmscan: tracing: Update trace event to track if page reclaim IO is for anon or file pages Mel Gorman
2010-07-19 13:11   ` Mel Gorman
2010-07-19 13:24   ` Rik van Riel
2010-07-19 13:24     ` Rik van Riel
2010-07-19 14:15   ` Christoph Hellwig
2010-07-19 14:15     ` Christoph Hellwig
2010-07-19 14:24     ` Mel Gorman
2010-07-19 14:24       ` Mel Gorman
2010-07-19 14:26       ` Christoph Hellwig
2010-07-19 14:26         ` Christoph Hellwig
2010-07-19 13:11 ` [PATCH 3/8] vmscan: tracing: Update post-processing script to distinguish between anon and file IO from page reclaim Mel Gorman
2010-07-19 13:11   ` Mel Gorman
2010-07-19 13:32   ` Rik van Riel
2010-07-19 13:32     ` Rik van Riel
2010-07-19 13:11 ` [PATCH 4/8] vmscan: Do not writeback filesystem pages in direct reclaim Mel Gorman
2010-07-19 13:11   ` Mel Gorman
2010-07-19 14:19   ` Christoph Hellwig
2010-07-19 14:19     ` Christoph Hellwig
2010-07-19 14:26     ` Mel Gorman
2010-07-19 14:26       ` Mel Gorman
2010-07-19 18:25   ` Rik van Riel
2010-07-19 18:25     ` Rik van Riel
2010-07-19 22:14   ` Johannes Weiner
2010-07-19 22:14     ` Johannes Weiner
2010-07-20 13:45     ` Mel Gorman
2010-07-20 13:45       ` Mel Gorman
2010-07-20 22:02       ` Johannes Weiner
2010-07-20 22:02         ` Johannes Weiner
2010-07-21 11:36         ` Johannes Weiner
2010-07-21 11:36           ` Johannes Weiner
2010-07-21 11:52         ` Mel Gorman
2010-07-21 11:52           ` Mel Gorman
2010-07-21 12:01           ` KAMEZAWA Hiroyuki
2010-07-21 12:01             ` KAMEZAWA Hiroyuki
2010-07-21 14:27             ` Mel Gorman
2010-07-21 14:27               ` Mel Gorman
2010-07-21 23:57               ` KAMEZAWA Hiroyuki
2010-07-21 23:57                 ` KAMEZAWA Hiroyuki
2010-07-22  9:19                 ` Mel Gorman
2010-07-22  9:19                   ` Mel Gorman
2010-07-22  9:22                   ` KAMEZAWA Hiroyuki
2010-07-22  9:22                     ` KAMEZAWA Hiroyuki
2010-07-21 13:04           ` Johannes Weiner
2010-07-21 13:04             ` Johannes Weiner
2010-07-21 13:38             ` Mel Gorman
2010-07-21 13:38               ` Mel Gorman
2010-07-21 14:28               ` Johannes Weiner
2010-07-21 14:28                 ` Johannes Weiner
2010-07-21 14:31                 ` Mel Gorman
2010-07-21 14:31                   ` Mel Gorman
2010-07-21 14:39                   ` Johannes Weiner
2010-07-21 14:39                     ` Johannes Weiner
2010-07-21 15:06                     ` Mel Gorman
2010-07-21 15:06                       ` Mel Gorman
2010-07-26  8:29               ` Wu Fengguang
2010-07-26  8:29                 ` Wu Fengguang
2010-07-26  9:12                 ` Mel Gorman
2010-07-26  9:12                   ` Mel Gorman
2010-07-26 11:19                   ` Wu Fengguang
2010-07-26 11:19                     ` Wu Fengguang
2010-07-26 12:53                     ` Mel Gorman
2010-07-26 12:53                       ` Mel Gorman
2010-07-26 13:03                       ` Wu Fengguang
2010-07-26 13:03                         ` Wu Fengguang
2010-07-19 13:11 ` [PATCH 5/8] fs,btrfs: Allow kswapd to writeback pages Mel Gorman
2010-07-19 13:11   ` Mel Gorman
2010-07-19 18:27   ` Rik van Riel
2010-07-19 18:27     ` Rik van Riel
2010-07-19 13:11 ` [PATCH 6/8] fs,xfs: " Mel Gorman
2010-07-19 13:11   ` Mel Gorman
2010-07-19 14:20   ` Christoph Hellwig
2010-07-19 14:20     ` Christoph Hellwig
2010-07-19 14:43     ` Mel Gorman
2010-07-19 14:43       ` Mel Gorman
2010-07-19 13:11 ` [PATCH 7/8] writeback: sync old inodes first in background writeback Mel Gorman
2010-07-19 13:11   ` Mel Gorman
2010-07-19 14:21   ` Christoph Hellwig
2010-07-19 14:21     ` Christoph Hellwig
2010-07-19 14:40     ` Mel Gorman
2010-07-19 14:40       ` Mel Gorman
2010-07-19 14:48       ` Christoph Hellwig
2010-07-19 14:48         ` Christoph Hellwig
2010-07-22  8:52       ` Wu Fengguang
2010-07-22  8:52         ` Wu Fengguang
2010-07-22  9:02         ` Wu Fengguang
2010-07-22  9:02           ` Wu Fengguang
2010-07-22  9:21         ` Wu Fengguang
2010-07-22  9:21           ` Wu Fengguang
2010-07-22 10:48           ` Mel Gorman
2010-07-22 10:48             ` Mel Gorman
2010-07-23  9:45             ` Wu Fengguang
2010-07-23  9:45               ` Wu Fengguang
2010-07-23 10:57               ` Mel Gorman
2010-07-23 10:57                 ` Mel Gorman
2010-07-23 11:49                 ` Wu Fengguang
2010-07-23 11:49                   ` Wu Fengguang
2010-07-23 12:20                   ` Wu Fengguang
2010-07-23 12:20                     ` Wu Fengguang
2010-07-25 10:43                 ` KOSAKI Motohiro
2010-07-25 10:43                   ` KOSAKI Motohiro
2010-07-25 12:03                   ` Minchan Kim
2010-07-25 12:03                     ` Minchan Kim
2010-07-26  3:27                     ` Wu Fengguang
2010-07-26  3:27                       ` Wu Fengguang
2010-07-26  4:11                       ` Minchan Kim
2010-07-26  4:11                         ` Minchan Kim
2010-07-26  4:37                         ` Wu Fengguang
2010-07-26  4:37                           ` Wu Fengguang
2010-07-26  4:37                           ` Wu Fengguang
2010-07-26 16:30                           ` Minchan Kim
2010-07-26 16:30                             ` Minchan Kim
2010-07-26 16:30                             ` Minchan Kim
2010-07-26 22:48                             ` Wu Fengguang
2010-07-26 22:48                               ` Wu Fengguang
2010-07-26 22:48                               ` Wu Fengguang
2010-07-26  3:08                   ` Wu Fengguang
2010-07-26  3:08                     ` Wu Fengguang
2010-07-26  3:11                     ` Rik van Riel
2010-07-26  3:11                       ` Rik van Riel
2010-07-26  3:17                       ` Wu Fengguang
2010-07-26  3:17                         ` Wu Fengguang
2010-07-22 15:34           ` Minchan Kim
2010-07-22 15:34             ` Minchan Kim
2010-07-23 11:59             ` Wu Fengguang
2010-07-23 11:59               ` Wu Fengguang
2010-07-22  9:42         ` Mel Gorman
2010-07-22  9:42           ` Mel Gorman
2010-07-23  8:33           ` Wu Fengguang
2010-07-23  8:33             ` Wu Fengguang
2010-07-22  1:13     ` Wu Fengguang
2010-07-22  1:13       ` Wu Fengguang
2010-07-19 18:43   ` Rik van Riel
2010-07-19 18:43     ` Rik van Riel
2010-07-19 13:11 ` [PATCH 8/8] vmscan: Kick flusher threads to clean pages when reclaim is encountering dirty pages Mel Gorman
2010-07-19 13:11   ` Mel Gorman
2010-07-19 14:23   ` Christoph Hellwig
2010-07-19 14:23     ` Christoph Hellwig
2010-07-19 14:37     ` Mel Gorman
2010-07-19 14:37       ` Mel Gorman
2010-07-19 22:48       ` Johannes Weiner [this message]
2010-07-19 22:48         ` Johannes Weiner
2010-07-20 14:10         ` Mel Gorman
2010-07-20 14:10           ` Mel Gorman
2010-07-20 22:05           ` Johannes Weiner
2010-07-20 22:05             ` Johannes Weiner
2010-07-19 18:59   ` Rik van Riel
2010-07-19 18:59     ` Rik van Riel
2010-07-19 22:26   ` Johannes Weiner
2010-07-19 22:26     ` Johannes Weiner
2010-07-26  7:28   ` Wu Fengguang
2010-07-26  7:28     ` Wu Fengguang
2010-07-26  9:26     ` Mel Gorman
2010-07-26  9:26       ` Mel Gorman
2010-07-26 11:27       ` Wu Fengguang
2010-07-26 11:27         ` Wu Fengguang
2010-07-26 12:57         ` Mel Gorman
2010-07-26 12:57           ` Mel Gorman
2010-07-26 13:10           ` Wu Fengguang
2010-07-26 13:10             ` Wu Fengguang
2010-07-27 13:35             ` Mel Gorman
2010-07-27 13:35               ` Mel Gorman
2010-07-27 14:24               ` Wu Fengguang
2010-07-27 14:24                 ` Wu Fengguang
2010-07-27 14:34                 ` Wu Fengguang
2010-07-27 14:34                   ` Wu Fengguang
2010-07-27 14:40                   ` Mel Gorman
2010-07-27 14:40                     ` Mel Gorman
2010-07-27 14:55                     ` Wu Fengguang
2010-07-27 14:55                       ` Wu Fengguang
2010-07-27 14:38                 ` Mel Gorman
2010-07-27 14:38                   ` Mel Gorman
2010-07-27 15:21                   ` Wu Fengguang
2010-07-27 15:21                     ` Wu Fengguang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100719224838.GC16031@cmpxchg.org \
    --to=hannes@cmpxchg.org \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=chris.mason@oracle.com \
    --cc=david@fromorbit.com \
    --cc=fengguang.wu@intel.com \
    --cc=hch@infradead.org \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mel@csn.ul.ie \
    --cc=npiggin@suse.de \
    --cc=riel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.