All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thorsten Leemhuis <fedora@leemhuis.info>
To: Mel Gorman <mgorman@suse.de>
Cc: Jiri Slaby <jslaby@suse.cz>,
	Valdis.Kletnieks@vt.edu, Jiri Slaby <jirislaby@gmail.com>,
	linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: kswapd0: excessive CPU usage
Date: Mon, 29 Oct 2012 11:52:03 +0100	[thread overview]
Message-ID: <508E5FD3.1060105@leemhuis.info> (raw)
In-Reply-To: <20121015110937.GE29125@suse.de>

Hi!

On 15.10.2012 13:09, Mel Gorman wrote:
> On Mon, Oct 15, 2012 at 11:54:13AM +0200, Jiri Slaby wrote:
>> On 10/12/2012 03:57 PM, Mel Gorman wrote:
>>> mm: vmscan: scale number of pages reclaimed by reclaim/compaction only in direct reclaim
>>> Jiri Slaby reported the following:
 > [...]
>>> diff --git a/mm/vmscan.c b/mm/vmscan.c
>>> index 2624edc..2b7edfa 100644
>>> --- a/mm/vmscan.c
>>> +++ b/mm/vmscan.c
>>> @@ -1763,14 +1763,20 @@ static bool in_reclaim_compaction(struct scan_control *sc)
>>>   #ifdef CONFIG_COMPACTION
>>>   /*
>>>    * If compaction is deferred for sc->order then scale the number of pages
>>> - * reclaimed based on the number of consecutive allocation failures
>>> + * reclaimed based on the number of consecutive allocation failures. This
>>> + * scaling only happens for direct reclaim as it is about to attempt
>>> + * compaction. If compaction fails, future allocations will be deferred
>>> + * and reclaim avoided. On the other hand, kswapd does not take compaction
>>> + * deferral into account so if it scaled, it could scan excessively even
>>> + * though allocations are temporarily not being attempted.
>>>    */
>>>   static unsigned long scale_for_compaction(unsigned long pages_for_compaction,
>>>   			struct lruvec *lruvec, struct scan_control *sc)
>>>   {
>>>   	struct zone *zone = lruvec_zone(lruvec);
>>>
>>> -	if (zone->compact_order_failed <= sc->order)
>>> +	if (zone->compact_order_failed <= sc->order &&
>>> +	    !current_is_kswapd())
>>>   		pages_for_compaction <<= zone->compact_defer_shift;
>>>   	return pages_for_compaction;
>>>   }
>> Yes, applying this instead of the revert fixes the issue as well.

Just wondering, is there a reason why this patch wasn't applied to 
mainline? Did it simply fall through the cracks? Or am I missing something?

I'm asking because I think I stil see the issue on 
3.7-rc2-git-checkout-from-friday. Seems Fedora rawhide users are hitting 
it, too:
https://bugzilla.redhat.com/show_bug.cgi?id=866988

Or are we seeing something different which just looks similar? I can 
test the patch if it needs further testing, but from the discussion I 
got the impression that everything is clear and the patch ready for merging.

CU
  knurd

--
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>

WARNING: multiple messages have this Message-ID (diff)
From: Thorsten Leemhuis <fedora@leemhuis.info>
To: Mel Gorman <mgorman@suse.de>
Cc: Jiri Slaby <jslaby@suse.cz>,
	Valdis.Kletnieks@vt.edu, Jiri Slaby <jirislaby@gmail.com>,
	linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: kswapd0: excessive CPU usage
Date: Mon, 29 Oct 2012 11:52:03 +0100	[thread overview]
Message-ID: <508E5FD3.1060105@leemhuis.info> (raw)
In-Reply-To: <20121015110937.GE29125@suse.de>

Hi!

On 15.10.2012 13:09, Mel Gorman wrote:
> On Mon, Oct 15, 2012 at 11:54:13AM +0200, Jiri Slaby wrote:
>> On 10/12/2012 03:57 PM, Mel Gorman wrote:
>>> mm: vmscan: scale number of pages reclaimed by reclaim/compaction only in direct reclaim
>>> Jiri Slaby reported the following:
 > [...]
>>> diff --git a/mm/vmscan.c b/mm/vmscan.c
>>> index 2624edc..2b7edfa 100644
>>> --- a/mm/vmscan.c
>>> +++ b/mm/vmscan.c
>>> @@ -1763,14 +1763,20 @@ static bool in_reclaim_compaction(struct scan_control *sc)
>>>   #ifdef CONFIG_COMPACTION
>>>   /*
>>>    * If compaction is deferred for sc->order then scale the number of pages
>>> - * reclaimed based on the number of consecutive allocation failures
>>> + * reclaimed based on the number of consecutive allocation failures. This
>>> + * scaling only happens for direct reclaim as it is about to attempt
>>> + * compaction. If compaction fails, future allocations will be deferred
>>> + * and reclaim avoided. On the other hand, kswapd does not take compaction
>>> + * deferral into account so if it scaled, it could scan excessively even
>>> + * though allocations are temporarily not being attempted.
>>>    */
>>>   static unsigned long scale_for_compaction(unsigned long pages_for_compaction,
>>>   			struct lruvec *lruvec, struct scan_control *sc)
>>>   {
>>>   	struct zone *zone = lruvec_zone(lruvec);
>>>
>>> -	if (zone->compact_order_failed <= sc->order)
>>> +	if (zone->compact_order_failed <= sc->order &&
>>> +	    !current_is_kswapd())
>>>   		pages_for_compaction <<= zone->compact_defer_shift;
>>>   	return pages_for_compaction;
>>>   }
>> Yes, applying this instead of the revert fixes the issue as well.

Just wondering, is there a reason why this patch wasn't applied to 
mainline? Did it simply fall through the cracks? Or am I missing something?

I'm asking because I think I stil see the issue on 
3.7-rc2-git-checkout-from-friday. Seems Fedora rawhide users are hitting 
it, too:
https://bugzilla.redhat.com/show_bug.cgi?id=866988

Or are we seeing something different which just looks similar? I can 
test the patch if it needs further testing, but from the discussion I 
got the impression that everything is clear and the patch ready for merging.

CU
  knurd

  reply	other threads:[~2012-10-29 10:52 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-11  8:52 kswapd0: wxcessive CPU usage Jiri Slaby
2012-10-11  8:52 ` Jiri Slaby
2012-10-11 13:44 ` Valdis.Kletnieks
2012-10-11 15:34   ` Jiri Slaby
2012-10-11 15:34     ` Jiri Slaby
2012-10-11 17:56     ` Valdis.Kletnieks
2012-10-11 17:59       ` Jiri Slaby
2012-10-11 17:59         ` Jiri Slaby
2012-10-11 18:19         ` Valdis.Kletnieks
2012-10-11 22:08           ` kswapd0: excessive " Jiri Slaby
2012-10-11 22:08             ` Jiri Slaby
2012-10-12 12:37             ` Jiri Slaby
2012-10-12 12:37               ` Jiri Slaby
2012-10-12 13:57               ` Mel Gorman
2012-10-12 13:57                 ` Mel Gorman
2012-10-15  9:54                 ` Jiri Slaby
2012-10-15  9:54                   ` Jiri Slaby
2012-10-15 11:09                   ` Mel Gorman
2012-10-15 11:09                     ` Mel Gorman
2012-10-29 10:52                     ` Thorsten Leemhuis [this message]
2012-10-29 10:52                       ` Thorsten Leemhuis
2012-10-30 19:18                       ` Mel Gorman
2012-10-30 19:18                         ` Mel Gorman
2012-10-31 11:25                         ` Thorsten Leemhuis
2012-10-31 11:25                           ` Thorsten Leemhuis
2012-10-31 15:04                           ` Mel Gorman
2012-10-31 15:04                             ` Mel Gorman
2012-11-04 16:36                         ` Rik van Riel
2012-11-04 16:36                           ` Rik van Riel
2012-11-02 10:44                     ` Zdenek Kabelac
2012-11-02 10:44                       ` Zdenek Kabelac
2012-11-02 10:53                       ` Jiri Slaby
2012-11-02 10:53                         ` Jiri Slaby
2012-11-02 19:45                         ` Jiri Slaby
2012-11-02 19:45                           ` Jiri Slaby
2012-11-04 11:26                           ` Zdenek Kabelac
2012-11-04 11:26                             ` Zdenek Kabelac
2012-11-05 14:24                           ` [PATCH] Revert "mm: vmscan: scale number of pages reclaimed by reclaim/compaction based on failures" Mel Gorman
2012-11-05 14:24                             ` Mel Gorman
2012-11-06 10:15                             ` Johannes Hirte
2012-11-06 10:15                               ` Johannes Hirte
2012-11-09  8:36                               ` Mel Gorman
2012-11-09  8:36                                 ` Mel Gorman
2012-11-14 21:43                                 ` Johannes Hirte
2012-11-14 21:43                                   ` Johannes Hirte
2012-11-09  9:12                             ` Mel Gorman
2012-11-09  9:12                               ` Mel Gorman
2012-11-09  4:22                           ` kswapd0: excessive CPU usage Seth Jennings
2012-11-09  4:22                             ` Seth Jennings
2012-11-09  8:07                             ` Zdenek Kabelac
2012-11-09  8:07                               ` Zdenek Kabelac
2012-11-09  9:06                               ` Mel Gorman
2012-11-09  9:06                                 ` Mel Gorman
2012-11-11  9:13                                 ` Zdenek Kabelac
2012-11-11  9:13                                   ` Zdenek Kabelac
2012-11-12 11:37                                   ` [PATCH] Revert "mm: remove __GFP_NO_KSWAPD" Mel Gorman
2012-11-12 11:37                                     ` Mel Gorman
2012-11-16 19:14                                     ` Josh Boyer
2012-11-16 19:14                                       ` Josh Boyer
2012-11-16 19:51                                       ` Andrew Morton
2012-11-16 19:51                                         ` Andrew Morton
2012-11-20  1:43                                         ` Valdis.Kletnieks
2012-11-16 20:06                                       ` Mel Gorman
2012-11-16 20:06                                         ` Mel Gorman
2012-11-20 15:38                                         ` Josh Boyer
2012-11-20 15:38                                           ` Josh Boyer
2012-11-20 16:13                                           ` Bruno Wolff III
2012-11-20 16:13                                             ` Bruno Wolff III
2012-11-20 17:43                                           ` Thorsten Leemhuis
2012-11-20 17:43                                             ` Thorsten Leemhuis
2012-11-23 15:20                                             ` Thorsten Leemhuis
2012-11-23 15:20                                               ` Thorsten Leemhuis
2012-11-27 11:12                                               ` Mel Gorman
2012-11-27 11:12                                                 ` Mel Gorman
2012-11-21 15:08                                           ` Mel Gorman
2012-11-21 15:08                                             ` Mel Gorman
2012-11-20  9:18                                     ` Glauber Costa
2012-11-20  9:18                                       ` Glauber Costa
2012-11-20 20:18                                       ` Andrew Morton
2012-11-20 20:18                                         ` Andrew Morton
2012-11-21  8:30                                         ` Glauber Costa
2012-11-21  8:30                                           ` Glauber Costa
2012-11-12 12:19                                   ` kswapd0: excessive CPU usage Mel Gorman
2012-11-12 12:19                                     ` Mel Gorman
2012-11-12 13:13                                     ` Zdenek Kabelac
2012-11-12 13:13                                       ` Zdenek Kabelac
2012-11-12 13:31                                       ` Mel Gorman
2012-11-12 13:31                                         ` Mel Gorman
2012-11-12 14:50                                         ` Zdenek Kabelac
2012-11-12 14:50                                           ` Zdenek Kabelac
2012-11-18 19:00                                         ` Zdenek Kabelac
2012-11-18 19:00                                           ` Zdenek Kabelac
2012-11-18 19:07                                           ` Jiri Slaby
2012-11-18 19:07                                             ` Jiri Slaby
2012-11-09  8:40                             ` Mel Gorman
2012-11-09  8:40                               ` Mel Gorman
2012-10-11 22:14 ` kswapd0: wxcessive " Andrew Morton
2012-10-11 22:14   ` Andrew Morton
2012-10-11 22:26   ` Jiri Slaby
2012-10-11 22:26     ` Jiri Slaby

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=508E5FD3.1060105@leemhuis.info \
    --to=fedora@leemhuis.info \
    --cc=Valdis.Kletnieks@vt.edu \
    --cc=akpm@linux-foundation.org \
    --cc=jirislaby@gmail.com \
    --cc=jslaby@suse.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    /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.