All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mel Gorman <mgorman@suse.de>
To: Wu Fengguang <fengguang.wu@intel.com>
Cc: Linux-MM <linux-mm@kvack.org>,
	LKML <linux-kernel@vger.kernel.org>, XFS <xfs@oss.sgi.com>,
	Dave Chinner <david@fromorbit.com>,
	Christoph Hellwig <hch@infradead.org>,
	Johannes Weiner <jweiner@redhat.com>, Jan Kara <jack@suse.cz>,
	Rik van Riel <riel@redhat.com>,
	Minchan Kim <minchan.kim@gmail.com>
Subject: Re: [PATCH 6/7] mm: vmscan: Throttle reclaim if encountering too many dirty pages under writeback
Date: Tue, 16 Aug 2011 16:02:08 +0100	[thread overview]
Message-ID: <20110816150208.GD4844@suse.de> (raw)
In-Reply-To: <20110816140652.GC13391@localhost>

On Tue, Aug 16, 2011 at 10:06:52PM +0800, Wu Fengguang wrote:
> Mel,
> 
> I tend to agree with the whole patchset except for this one.
> 
> The worry comes from the fact that there are always the very possible
> unevenly distribution of dirty pages throughout the LRU lists.

It is pages under writeback that determines if throttling is considered
not dirty pages. The distinction is important. I agree with you that if
it was dirty pages that throttling would be considered too regularly.

> This
> patch works on local information and may unnecessarily throttle page
> reclaim when running into small spans of dirty pages.
> 

It's also calling wait_iff_congested() not congestion_wait(). This
takes BDI congestion and zone congestion into account with this check.

       /*
         * If there is no congestion, or heavy congestion is not being
         * encountered in the current zone, yield if necessary instead
         * of sleeping on the congestion queue
         */
        if (atomic_read(&nr_bdi_congested[sync]) == 0 ||
                        !zone_is_reclaim_congested(zone)) {

So global information is being taken into account.

> One possible scheme of global throttling is to first tag the skipped
> page with PG_reclaim (as you already do). And to throttle page reclaim
> only when running into pages with both PG_dirty and PG_reclaim set,

It's PG_writeback that is looked at, not PG_dirty.

> which means we have cycled through the _whole_ LRU list (which is the
> global and adaptive feedback we want) and run into that dirty page for
> the second time.
> 

This potentially results in more scanning from kswapd before it starts
throttling which could consume a lot of CPU. If pages under writeback
are reaching the end of the LRU, it's already the case that kswapd is
scanning faster than pages can be cleaned. Even then, it only really
throttles if the zone or a BDI is congested.

Taking that into consideration, do you still think there is a big
advantage to having writeback pages take another lap around the LRU
that is justifies the expected increase in CPU usage?

-- 
Mel Gorman
SUSE Labs

WARNING: multiple messages have this Message-ID (diff)
From: Mel Gorman <mgorman@suse.de>
To: Wu Fengguang <fengguang.wu@intel.com>
Cc: Rik van Riel <riel@redhat.com>, Jan Kara <jack@suse.cz>,
	LKML <linux-kernel@vger.kernel.org>, XFS <xfs@oss.sgi.com>,
	Christoph Hellwig <hch@infradead.org>,
	Linux-MM <linux-mm@kvack.org>,
	Minchan Kim <minchan.kim@gmail.com>,
	Johannes Weiner <jweiner@redhat.com>
Subject: Re: [PATCH 6/7] mm: vmscan: Throttle reclaim if encountering too many dirty pages under writeback
Date: Tue, 16 Aug 2011 16:02:08 +0100	[thread overview]
Message-ID: <20110816150208.GD4844@suse.de> (raw)
In-Reply-To: <20110816140652.GC13391@localhost>

On Tue, Aug 16, 2011 at 10:06:52PM +0800, Wu Fengguang wrote:
> Mel,
> 
> I tend to agree with the whole patchset except for this one.
> 
> The worry comes from the fact that there are always the very possible
> unevenly distribution of dirty pages throughout the LRU lists.

It is pages under writeback that determines if throttling is considered
not dirty pages. The distinction is important. I agree with you that if
it was dirty pages that throttling would be considered too regularly.

> This
> patch works on local information and may unnecessarily throttle page
> reclaim when running into small spans of dirty pages.
> 

It's also calling wait_iff_congested() not congestion_wait(). This
takes BDI congestion and zone congestion into account with this check.

       /*
         * If there is no congestion, or heavy congestion is not being
         * encountered in the current zone, yield if necessary instead
         * of sleeping on the congestion queue
         */
        if (atomic_read(&nr_bdi_congested[sync]) == 0 ||
                        !zone_is_reclaim_congested(zone)) {

So global information is being taken into account.

> One possible scheme of global throttling is to first tag the skipped
> page with PG_reclaim (as you already do). And to throttle page reclaim
> only when running into pages with both PG_dirty and PG_reclaim set,

It's PG_writeback that is looked at, not PG_dirty.

> which means we have cycled through the _whole_ LRU list (which is the
> global and adaptive feedback we want) and run into that dirty page for
> the second time.
> 

This potentially results in more scanning from kswapd before it starts
throttling which could consume a lot of CPU. If pages under writeback
are reaching the end of the LRU, it's already the case that kswapd is
scanning faster than pages can be cleaned. Even then, it only really
throttles if the zone or a BDI is congested.

Taking that into consideration, do you still think there is a big
advantage to having writeback pages take another lap around the LRU
that is justifies the expected increase in CPU usage?

-- 
Mel Gorman
SUSE Labs

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

WARNING: multiple messages have this Message-ID (diff)
From: Mel Gorman <mgorman@suse.de>
To: Wu Fengguang <fengguang.wu@intel.com>
Cc: Linux-MM <linux-mm@kvack.org>,
	LKML <linux-kernel@vger.kernel.org>, XFS <xfs@oss.sgi.com>,
	Dave Chinner <david@fromorbit.com>,
	Christoph Hellwig <hch@infradead.org>,
	Johannes Weiner <jweiner@redhat.com>, Jan Kara <jack@suse.cz>,
	Rik van Riel <riel@redhat.com>,
	Minchan Kim <minchan.kim@gmail.com>
Subject: Re: [PATCH 6/7] mm: vmscan: Throttle reclaim if encountering too many dirty pages under writeback
Date: Tue, 16 Aug 2011 16:02:08 +0100	[thread overview]
Message-ID: <20110816150208.GD4844@suse.de> (raw)
In-Reply-To: <20110816140652.GC13391@localhost>

On Tue, Aug 16, 2011 at 10:06:52PM +0800, Wu Fengguang wrote:
> Mel,
> 
> I tend to agree with the whole patchset except for this one.
> 
> The worry comes from the fact that there are always the very possible
> unevenly distribution of dirty pages throughout the LRU lists.

It is pages under writeback that determines if throttling is considered
not dirty pages. The distinction is important. I agree with you that if
it was dirty pages that throttling would be considered too regularly.

> This
> patch works on local information and may unnecessarily throttle page
> reclaim when running into small spans of dirty pages.
> 

It's also calling wait_iff_congested() not congestion_wait(). This
takes BDI congestion and zone congestion into account with this check.

       /*
         * If there is no congestion, or heavy congestion is not being
         * encountered in the current zone, yield if necessary instead
         * of sleeping on the congestion queue
         */
        if (atomic_read(&nr_bdi_congested[sync]) == 0 ||
                        !zone_is_reclaim_congested(zone)) {

So global information is being taken into account.

> One possible scheme of global throttling is to first tag the skipped
> page with PG_reclaim (as you already do). And to throttle page reclaim
> only when running into pages with both PG_dirty and PG_reclaim set,

It's PG_writeback that is looked at, not PG_dirty.

> which means we have cycled through the _whole_ LRU list (which is the
> global and adaptive feedback we want) and run into that dirty page for
> the second time.
> 

This potentially results in more scanning from kswapd before it starts
throttling which could consume a lot of CPU. If pages under writeback
are reaching the end of the LRU, it's already the case that kswapd is
scanning faster than pages can be cleaned. Even then, it only really
throttles if the zone or a BDI is congested.

Taking that into consideration, do you still think there is a big
advantage to having writeback pages take another lap around the LRU
that is justifies the expected increase in CPU usage?

-- 
Mel Gorman
SUSE Labs

--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2011-08-16 15:02 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-10 10:47 [PATCH 0/7] Reduce filesystem writeback from page reclaim v3 Mel Gorman
2011-08-10 10:47 ` Mel Gorman
2011-08-10 10:47 ` Mel Gorman
2011-08-10 10:47 ` [PATCH 1/7] mm: vmscan: Do not writeback filesystem pages in direct reclaim Mel Gorman
2011-08-10 10:47   ` Mel Gorman
2011-08-10 10:47   ` Mel Gorman
2011-08-10 12:40   ` Johannes Weiner
2011-08-10 12:40     ` Johannes Weiner
2011-08-10 12:40     ` Johannes Weiner
2011-08-11  9:03   ` KAMEZAWA Hiroyuki
2011-08-11  9:03     ` KAMEZAWA Hiroyuki
2011-08-11  9:03     ` KAMEZAWA Hiroyuki
2011-08-11 15:57   ` Rik van Riel
2011-08-11 15:57     ` Rik van Riel
2011-08-11 15:57     ` Rik van Riel
2011-08-10 10:47 ` [PATCH 2/7] mm: vmscan: Remove dead code related to lumpy reclaim waiting on pages under writeback Mel Gorman
2011-08-10 10:47   ` Mel Gorman
2011-08-10 10:47   ` Mel Gorman
2011-08-10 12:41   ` Johannes Weiner
2011-08-10 12:41     ` Johannes Weiner
2011-08-10 12:41     ` Johannes Weiner
2011-08-10 23:19   ` Minchan Kim
2011-08-10 23:19     ` Minchan Kim
2011-08-10 23:19     ` Minchan Kim
2011-08-11  9:05   ` KAMEZAWA Hiroyuki
2011-08-11  9:05     ` KAMEZAWA Hiroyuki
2011-08-11  9:05     ` KAMEZAWA Hiroyuki
2011-08-11 16:52   ` Rik van Riel
2011-08-11 16:52     ` Rik van Riel
2011-08-11 16:52     ` Rik van Riel
2011-08-10 10:47 ` [PATCH 3/7] xfs: Warn if direct reclaim tries to writeback pages Mel Gorman
2011-08-10 10:47   ` Mel Gorman
2011-08-10 10:47   ` Mel Gorman
2011-08-11 16:53   ` Rik van Riel
2011-08-11 16:53     ` Rik van Riel
2011-08-11 16:53     ` Rik van Riel
2011-08-10 10:47 ` [PATCH 4/7] ext4: " Mel Gorman
2011-08-10 10:47   ` Mel Gorman
2011-08-10 10:47   ` Mel Gorman
2011-08-11 17:07   ` Rik van Riel
2011-08-11 17:07     ` Rik van Riel
2011-08-11 17:07     ` Rik van Riel
2011-08-10 10:47 ` [PATCH 5/7] mm: vmscan: Do not writeback filesystem pages in kswapd except in high priority Mel Gorman
2011-08-10 10:47   ` Mel Gorman
2011-08-10 10:47   ` Mel Gorman
2011-08-10 12:44   ` Johannes Weiner
2011-08-10 12:44     ` Johannes Weiner
2011-08-10 12:44     ` Johannes Weiner
2011-08-11  9:10   ` KAMEZAWA Hiroyuki
2011-08-11  9:10     ` KAMEZAWA Hiroyuki
2011-08-11  9:10     ` KAMEZAWA Hiroyuki
2011-08-11 20:25     ` Mel Gorman
2011-08-11 20:25       ` Mel Gorman
2011-08-11 20:25       ` Mel Gorman
2011-08-17  1:06       ` KAMEZAWA Hiroyuki
2011-08-17  1:06         ` KAMEZAWA Hiroyuki
2011-08-17  1:06         ` KAMEZAWA Hiroyuki
2011-08-11 18:18   ` Rik van Riel
2011-08-11 18:18     ` Rik van Riel
2011-08-11 18:18     ` Rik van Riel
2011-08-11 20:38     ` Mel Gorman
2011-08-11 20:38       ` Mel Gorman
2011-08-11 20:38       ` Mel Gorman
2011-08-10 10:47 ` [PATCH 6/7] mm: vmscan: Throttle reclaim if encountering too many dirty pages under writeback Mel Gorman
2011-08-10 10:47   ` Mel Gorman
2011-08-10 10:47   ` Mel Gorman
2011-08-11  9:18   ` KAMEZAWA Hiroyuki
2011-08-11  9:18     ` KAMEZAWA Hiroyuki
2011-08-11  9:18     ` KAMEZAWA Hiroyuki
2011-08-12  2:47   ` Rik van Riel
2011-08-12  2:47     ` Rik van Riel
2011-08-12  2:47     ` Rik van Riel
2011-08-16 14:06   ` Wu Fengguang
2011-08-16 14:06     ` Wu Fengguang
2011-08-16 14:06     ` Wu Fengguang
2011-08-16 15:02     ` Mel Gorman [this message]
2011-08-16 15:02       ` Mel Gorman
2011-08-16 15:02       ` Mel Gorman
2011-08-18 14:02       ` Wu Fengguang
2011-08-18 14:02         ` Wu Fengguang
2011-08-18 14:02         ` Wu Fengguang
2011-08-18 23:54   ` Andrew Morton
2011-08-18 23:54     ` Andrew Morton
2011-08-18 23:54     ` Andrew Morton
2011-08-30 13:49     ` Mel Gorman
2011-08-30 13:49       ` Mel Gorman
2011-08-30 13:49       ` Mel Gorman
2011-08-31  9:53     ` Mel Gorman
2011-08-31  9:53       ` Mel Gorman
2011-08-31  9:53       ` Mel Gorman
2011-08-10 10:47 ` [PATCH 7/7] mm: vmscan: Immediately reclaim end-of-LRU dirty pages when writeback completes Mel Gorman
2011-08-10 10:47   ` Mel Gorman
2011-08-10 10:47   ` Mel Gorman
2011-08-10 23:22   ` Minchan Kim
2011-08-10 23:22     ` Minchan Kim
2011-08-10 23:22     ` Minchan Kim
2011-08-11  9:19   ` KAMEZAWA Hiroyuki
2011-08-11  9:19     ` KAMEZAWA Hiroyuki
2011-08-11  9:19     ` KAMEZAWA Hiroyuki
2011-08-12 15:27   ` Rik van Riel
2011-08-12 15:27     ` Rik van Riel
2011-08-12 15:27     ` Rik van Riel
2011-08-10 11:00 ` [PATCH 0/7] Reduce filesystem writeback from page reclaim v3 Christoph Hellwig
2011-08-10 11:00   ` Christoph Hellwig
2011-08-10 11:00   ` Christoph Hellwig
2011-08-10 11:15   ` Mel Gorman
2011-08-10 11:15     ` Mel Gorman
2011-08-10 11:15     ` Mel Gorman
2011-08-11 23:45     ` Christoph Hellwig
2011-08-11 23:45       ` Christoph Hellwig
2011-08-11 23:45       ` Christoph Hellwig
2011-08-18 23:54 ` Andrew Morton
2011-08-18 23:54   ` Andrew Morton
2011-08-18 23:54   ` Andrew Morton
2011-08-20 19:33   ` Mel Gorman
2011-08-20 19:33     ` Mel Gorman
2011-08-20 19:33     ` Mel Gorman
2011-08-30 13:19   ` Mel Gorman
2011-08-30 13:19     ` Mel Gorman
2011-08-30 13:19     ` Mel Gorman

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=20110816150208.GD4844@suse.de \
    --to=mgorman@suse.de \
    --cc=david@fromorbit.com \
    --cc=fengguang.wu@intel.com \
    --cc=hch@infradead.org \
    --cc=jack@suse.cz \
    --cc=jweiner@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=minchan.kim@gmail.com \
    --cc=riel@redhat.com \
    --cc=xfs@oss.sgi.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.