From: Vlastimil Babka <vbabka@suse.cz>
To: Jaewon Kim <jaewon31.kim@samsung.com>,
Minchan Kim <minchan@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>
Cc: mgorman@suse.de, linux-mm@kvack.org,
linux-kernel@vger.kernel.org, jaewon31.kim@gmail.com
Subject: Re: [PATCH v2] vmscan: fix increasing nr_isolated incurred by putback unevictable pages
Date: Thu, 6 Aug 2015 14:21:38 +0200 [thread overview]
Message-ID: <55C35152.4010306@suse.cz> (raw)
In-Reply-To: <55C15E37.80504@samsung.com>
On 08/05/2015 02:52 AM, Jaewon Kim wrote:
>
>
> On 2015e?? 08i?? 05i? 1/4 08:31, Minchan Kim wrote:
>> Hello,
>>
>> On Tue, Aug 04, 2015 at 03:09:37PM -0700, Andrew Morton wrote:
>>> On Tue, 04 Aug 2015 19:40:08 +0900 Jaewon Kim <jaewon31.kim@samsung.com> wrote:
>>>
>>>> reclaim_clean_pages_from_list() assumes that shrink_page_list() returns
>>>> number of pages removed from the candidate list. But shrink_page_list()
>>>> puts back mlocked pages without passing it to caller and without
>>>> counting as nr_reclaimed. This incurrs increasing nr_isolated.
>>>> To fix this, this patch changes shrink_page_list() to pass unevictable
>>>> pages back to caller. Caller will take care those pages.
>>>>
>>>> ..
>>>>
>>>> --- a/mm/vmscan.c
>>>> +++ b/mm/vmscan.c
>>>> @@ -1157,7 +1157,7 @@ cull_mlocked:
>>>> if (PageSwapCache(page))
>>>> try_to_free_swap(page);
>>>> unlock_page(page);
>>>> - putback_lru_page(page);
>>>> + list_add(&page->lru, &ret_pages);
>>>> continue;
>>>>
>>>> activate_locked:
>>>
>>> Is this going to cause a whole bunch of mlocked pages to be migrated
>>> whereas in current kernels they stay where they are?
The only user that will see the change wrt migration is
__alloc_contig_migrate_range() which is explicit about isolating mlocked
page for migration (isolate_migratepages_range() calls
isolate_migratepages_block() with ISOLATE_UNEVICTABLE). So this will
make the migration work for clean page cache too.
>>
>>
>> It fixes two issues.
>>
>> 1. With unevictable page, cma_alloc will be successful.
>>
>> Exactly speaking, cma_alloc of current kernel will fail due to unevictable pages.
>>
>> 2. fix leaking of NR_ISOLATED counter of vmstat
>>
>> With it, too_many_isolated works. Otherwise, it could make hang until
>> the process get SIGKILL.
This should be more explicit in the changelog. The first issue is not
mentioned at all. The second is not clear from the description.
>>
>> So, I think it's stable material.
>>
>> Acked-by: Minchan Kim <minchan@kernel.org>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
>>
>>
> Hello
>
> Traditional shrink_inactive_list will put back the unevictable pages as it does through putback_inactive_pages.
> However as Minchan Kim said, cma_alloc will be more successful by migrating unevictable pages.
> In current kernel, I think, cma_alloc is already trying to migrate unevictable pages except clean page cache.
> This patch will allow clean page cache also to be migrated in cma_alloc.
>
> Thank you
>
> --
> 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>
>
--
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: Vlastimil Babka <vbabka@suse.cz>
To: Jaewon Kim <jaewon31.kim@samsung.com>,
Minchan Kim <minchan@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>
Cc: mgorman@suse.de, linux-mm@kvack.org,
linux-kernel@vger.kernel.org, jaewon31.kim@gmail.com
Subject: Re: [PATCH v2] vmscan: fix increasing nr_isolated incurred by putback unevictable pages
Date: Thu, 6 Aug 2015 14:21:38 +0200 [thread overview]
Message-ID: <55C35152.4010306@suse.cz> (raw)
In-Reply-To: <55C15E37.80504@samsung.com>
On 08/05/2015 02:52 AM, Jaewon Kim wrote:
>
>
> On 2015년 08월 05일 08:31, Minchan Kim wrote:
>> Hello,
>>
>> On Tue, Aug 04, 2015 at 03:09:37PM -0700, Andrew Morton wrote:
>>> On Tue, 04 Aug 2015 19:40:08 +0900 Jaewon Kim <jaewon31.kim@samsung.com> wrote:
>>>
>>>> reclaim_clean_pages_from_list() assumes that shrink_page_list() returns
>>>> number of pages removed from the candidate list. But shrink_page_list()
>>>> puts back mlocked pages without passing it to caller and without
>>>> counting as nr_reclaimed. This incurrs increasing nr_isolated.
>>>> To fix this, this patch changes shrink_page_list() to pass unevictable
>>>> pages back to caller. Caller will take care those pages.
>>>>
>>>> ..
>>>>
>>>> --- a/mm/vmscan.c
>>>> +++ b/mm/vmscan.c
>>>> @@ -1157,7 +1157,7 @@ cull_mlocked:
>>>> if (PageSwapCache(page))
>>>> try_to_free_swap(page);
>>>> unlock_page(page);
>>>> - putback_lru_page(page);
>>>> + list_add(&page->lru, &ret_pages);
>>>> continue;
>>>>
>>>> activate_locked:
>>>
>>> Is this going to cause a whole bunch of mlocked pages to be migrated
>>> whereas in current kernels they stay where they are?
The only user that will see the change wrt migration is
__alloc_contig_migrate_range() which is explicit about isolating mlocked
page for migration (isolate_migratepages_range() calls
isolate_migratepages_block() with ISOLATE_UNEVICTABLE). So this will
make the migration work for clean page cache too.
>>
>>
>> It fixes two issues.
>>
>> 1. With unevictable page, cma_alloc will be successful.
>>
>> Exactly speaking, cma_alloc of current kernel will fail due to unevictable pages.
>>
>> 2. fix leaking of NR_ISOLATED counter of vmstat
>>
>> With it, too_many_isolated works. Otherwise, it could make hang until
>> the process get SIGKILL.
This should be more explicit in the changelog. The first issue is not
mentioned at all. The second is not clear from the description.
>>
>> So, I think it's stable material.
>>
>> Acked-by: Minchan Kim <minchan@kernel.org>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
>>
>>
> Hello
>
> Traditional shrink_inactive_list will put back the unevictable pages as it does through putback_inactive_pages.
> However as Minchan Kim said, cma_alloc will be more successful by migrating unevictable pages.
> In current kernel, I think, cma_alloc is already trying to migrate unevictable pages except clean page cache.
> This patch will allow clean page cache also to be migrated in cma_alloc.
>
> Thank you
>
> --
> 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>
>
next prev parent reply other threads:[~2015-08-06 12:21 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-04 10:40 [PATCH v2] vmscan: fix increasing nr_isolated incurred by putback unevictable pages Jaewon Kim
2015-08-04 10:40 ` Jaewon Kim
2015-08-04 22:09 ` Andrew Morton
2015-08-04 22:09 ` Andrew Morton
2015-08-04 23:31 ` Minchan Kim
2015-08-04 23:31 ` Minchan Kim
2015-08-05 0:52 ` Jaewon Kim
2015-08-05 0:52 ` Jaewon Kim
2015-08-06 12:21 ` Vlastimil Babka [this message]
2015-08-06 12:21 ` Vlastimil Babka
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=55C35152.4010306@suse.cz \
--to=vbabka@suse.cz \
--cc=akpm@linux-foundation.org \
--cc=jaewon31.kim@gmail.com \
--cc=jaewon31.kim@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=minchan@kernel.org \
/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.