From: Michal Hocko <mhocko@kernel.org>
To: akpm@linux-foundation.org
Cc: zhongjiang@huawei.com, hughd@google.com, stable@vger.kernel.org,
mm-commits@vger.kernel.org
Subject: Re: + mmksm-fix-endless-looping-in-allocating-memory-when-ksm-enable.patch added to -mm tree
Date: Tue, 20 Sep 2016 08:54:40 +0200 [thread overview]
Message-ID: <20160920065439.GA5477@dhcp22.suse.cz> (raw)
In-Reply-To: <57e06d08.evanQdy7Li/zBfXB%akpm@linux-foundation.org>
On Mon 19-09-16 15:56:08, Andrew Morton wrote:
[...]
> From: zhong jiang <zhongjiang@huawei.com>
> Subject: mm,ksm: fix endless looping in allocating memory when ksm enable
>
> I hit the following issue when run a OOM case of the LTP and ksm enable.
>
> Call trace:
> [<ffffffc000086a88>] __switch_to+0x74/0x8c
> [<ffffffc000a1bae0>] __schedule+0x23c/0x7bc
> [<ffffffc000a1c09c>] schedule+0x3c/0x94
> [<ffffffc000a1eb84>] rwsem_down_write_failed+0x214/0x350
> [<ffffffc000a1e32c>] down_write+0x64/0x80
> [<ffffffc00021f794>] __ksm_exit+0x90/0x19c
> [<ffffffc0000be650>] mmput+0x118/0x11c
> [<ffffffc0000c3ec4>] do_exit+0x2dc/0xa74
> [<ffffffc0000c46f8>] do_group_exit+0x4c/0xe4
> [<ffffffc0000d0f34>] get_signal+0x444/0x5e0
> [<ffffffc000089fcc>] do_signal+0x1d8/0x450
> [<ffffffc00008a35c>] do_notify_resume+0x70/0x78
>
> it will lead to a hung task because the exiting task cannot get the mmap
> sem for write. but the root cause is that the ksmd holds it for read
> while allocateing memory which just takes ages to complete. and ksmd will
> loop in the following path.
>
> scan_get_next_rmap_item
> down_read
> get_next_rmap_item
> alloc_rmap_item #ksmd will loop permanently.
>
> we fix it by changing the GFP to allow the allocation sometimes fail, and
> we're not at all interested in hearing abot that.
I really hope we will see an updated changelog. As of now it is more
confusing than helpful. See
http://lkml.kernel.org/r/20160918144858.GB28476@dhcp22.suse.cz
Not enough to NAK but still much preferable to go with a better
changelog.
> Link: http://lkml.kernel.org/r/1474165570-44398-1-git-send-email-zhongjiang@huawei.com
> Signed-off-by: zhong jiang <zhongjiang@huawei.com>
> Suggested-by: Hugh Dickins <hughd@google.com>
> Suggested-by: Michal Hocko <mhocko@suse.cz>
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
>
> mm/ksm.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff -puN mm/ksm.c~mmksm-fix-endless-looping-in-allocating-memory-when-ksm-enable mm/ksm.c
> --- a/mm/ksm.c~mmksm-fix-endless-looping-in-allocating-memory-when-ksm-enable
> +++ a/mm/ksm.c
> @@ -283,7 +283,8 @@ static inline struct rmap_item *alloc_rm
> {
> struct rmap_item *rmap_item;
>
> - rmap_item = kmem_cache_zalloc(rmap_item_cache, GFP_KERNEL);
> + rmap_item = kmem_cache_zalloc(rmap_item_cache, GFP_KERNEL |
> + __GFP_NORETRY | __GFP_NOWARN);
> if (rmap_item)
> ksm_rmap_items++;
> return rmap_item;
> _
>
> Patches currently in -mm which might be from zhongjiang@huawei.com are
>
> mmksm-fix-endless-looping-in-allocating-memory-when-ksm-enable.patch
> mm-page_owner-align-with-pageblock_nr-pages.patch
> mm-walk-the-zone-in-pageblock_nr_pages-steps.patch
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2016-09-20 6:54 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-19 22:56 + mmksm-fix-endless-looping-in-allocating-memory-when-ksm-enable.patch added to -mm tree akpm
2016-09-20 6:54 ` Michal Hocko [this message]
-- strict thread matches above, loose matches on Subject: below --
2016-09-20 20:09 akpm
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=20160920065439.GA5477@dhcp22.suse.cz \
--to=mhocko@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=hughd@google.com \
--cc=mm-commits@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=zhongjiang@huawei.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).