[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180118172213.GI6584@dhcp22.suse.cz>
Date: Thu, 18 Jan 2018 18:22:13 +0100
From: Michal Hocko <mhocko@...nel.org>
To: "Kirill A. Shutemov" <kirill@...temov.name>
Cc: Dave Hansen <dave.hansen@...ux.intel.com>,
Tetsuo Handa <penguin-kernel@...ove.SAKURA.ne.jp>,
torvalds@...ux-foundation.org, kirill.shutemov@...ux.intel.com,
akpm@...ux-foundation.org, hannes@...xchg.org,
iamjoonsoo.kim@....com, mgorman@...hsingularity.net,
tony.luck@...el.com, vbabka@...e.cz, aarcange@...hat.com,
hillf.zj@...baba-inc.com, hughd@...gle.com, oleg@...hat.com,
peterz@...radead.org, riel@...hat.com, srikar@...ux.vnet.ibm.com,
vdavydov.dev@...il.com, mingo@...nel.org,
linux-kernel@...r.kernel.org, linux-mm@...ck.org, x86@...nel.org
Subject: Re: [mm 4.15-rc8] Random oopses under memory pressure.
On Thu 18-01-18 18:40:26, Kirill A. Shutemov wrote:
[...]
> + /*
> + * Make sure that pages are in the same section before doing pointer
> + * arithmetics.
> + */
> + if (page_to_section(pvmw->page) != page_to_section(page))
> + return false;
OK, THPs shouldn't cross memory sections AFAIK. My brain is meltdown
these days so this might be a completely stupid question. But why don't
you simply compare pfns? This would be just simpler, no?
> +
> + if (page < pvmw->page)
> + return false;
> +
> + /* THP can be referenced by any subpage */
> + if (page - pvmw->page >= hpage_nr_pages(pvmw->page))
> + return false;
> +
> return true;
> }
>
> --
> Kirill A. Shutemov
--
Michal Hocko
SUSE Labs
Powered by blists - more mailing lists