From: Michal Hocko <mhocko@kernel.org>
To: Minchan Kim <minchan@kernel.org>
Cc: Jens Rottmann <Jens.Rottmann@ADLINKtech.com>,
Lukasz Odzioba <lukasz.odzioba@intel.com>,
Sasha Levin <sasha.levin@oracle.com>,
stable@vger.kernel.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org
Subject: Re: 4.1.28: memory leak introduced by "mm/swap.c: flush lru pvecs on compound page arrival"
Date: Mon, 18 Jul 2016 08:53:13 +0200 [thread overview]
Message-ID: <20160718065312.GA22671@dhcp22.suse.cz> (raw)
In-Reply-To: <20160716144740.GA29708@bbox>
On Sat 16-07-16 23:47:40, Minchan Kim wrote:
> On Fri, Jul 15, 2016 at 09:27:55PM +0200, Jens Rottmann wrote:
> > Hi,
> >
> > 4.1.y stable commit c5ad33184354260be6d05de57e46a5498692f6d6 (Upstream
> > commit 8f182270dfec432e93fae14f9208a6b9af01009f) "mm/swap.c: flush lru
> > pvecs on compound page arrival" in 4.1.28 introduces a memory leak.
> >
> > Simply running
> >
> > while sleep 0.1; do clear; free; done
> >
> > shows mem continuously going down, eventually system panics with no
> > killable processes left. Using "unxz -t some.xz" instead of sleep brings
> > system down within minutes.
> >
> > Kmemleak did not report anything. Bisect ended at named commit, and
> > reverting only this commit is indeed sufficient to fix the leak. Swap
> > partition on/off makes no difference.
> >
> > My set-up:
> > i.MX6 (ARM Cortex-A9) dual-core, 2 GB RAM. Kernel sources are from
> > git.freescale.com i.e. heavily modified by Freescale for i.MX SoCs,
> > kernel.org stable patches up to 4.1.28 manually added.
> >
> > I tried to reproduce with vanilla 4.1.28, but that wouldn't boot at all
> > on my hardware, hangs immediately after "Starting kernel", sorry.
> > However there is not a single difference between Freescale and vanilla
> > in the whole mm/ subdirectory, so I don't think it's i.MX-specific. I
> > didn't cross-check with an x86 system (yet).
>
> I didn't have 4.1 stable tree in my local so just looked at git web
> and found __lru_cache_add has a bug.
>
> Please change
>
> static void __lru_cache_add(struct page *page)
> {
> struct pagevec *pvec = &get_cpu_var(lru_add_pvec);
>
> page_cache_get(page);
> if (!pagevec_space(pvec) || PageCompound(page)) <==
> __pagevec_lru_add(pvec);
> put_cpu_var(lru_add_pvec);
> }
>
> with
>
> static void __lru_cache_add(struct page *page)
> {
> struct pagevec *pvec = &get_cpu_var(lru_add_pvec);
>
> page_cache_get(page);
> if (!pagevec_add(pvec, page) || PageCompound(page)) <==
> __pagevec_lru_add(pvec);
> put_cpu_var(lru_add_pvec);
> }
>
Yes this is it. Steven has reported that last week and Sasha should be
aware of that http://lkml.kernel.org/r/20160714175521.3675e3d6@gandalf.local.home
--
Michal Hocko
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
prev parent reply other threads:[~2016-07-18 6:53 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-15 19:27 4.1.28: memory leak introduced by "mm/swap.c: flush lru pvecs on compound page arrival" Jens Rottmann
2016-07-15 22:33 ` Jens Rottmann
2016-07-16 13:55 ` Jens Rottmann
2016-07-16 14:47 ` Minchan Kim
2016-07-16 17:29 ` Jens Rottmann
2016-07-16 18:48 ` Mikulas Patocka
2016-07-18 6:53 ` Michal Hocko [this message]
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=20160718065312.GA22671@dhcp22.suse.cz \
--to=mhocko@kernel.org \
--cc=Jens.Rottmann@ADLINKtech.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lukasz.odzioba@intel.com \
--cc=minchan@kernel.org \
--cc=sasha.levin@oracle.com \
--cc=stable@vger.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 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).