lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171019071503.e7w5fo35lsq6ca54@dhcp22.suse.cz>
Date:   Thu, 19 Oct 2017 09:15:03 +0200
From:   Michal Hocko <mhocko@...nel.org>
To:     Joonsoo Kim <iamjoonsoo.kim@....com>
Cc:     linux-mm@...ck.org, Michael Ellerman <mpe@...erman.id.au>,
        Vlastimil Babka <vbabka@...e.cz>,
        Andrew Morton <akpm@...ux-foundation.org>,
        KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>,
        Reza Arbab <arbab@...ux.vnet.ibm.com>,
        Yasuaki Ishimatsu <yasu.isimatu@...il.com>,
        qiuxishi@...wei.com, Igor Mammedov <imammedo@...hat.com>,
        Vitaly Kuznetsov <vkuznets@...hat.com>,
        LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/2] mm: drop migrate type checks from has_unmovable_pages

On Thu 19-10-17 11:51:11, Joonsoo Kim wrote:
> On Fri, Oct 13, 2017 at 02:00:12PM +0200, Michal Hocko wrote:
> > From: Michal Hocko <mhocko@...e.com>
> > 
> > Michael has noticed that the memory offline tries to migrate kernel code
> > pages when doing
> >  echo 0 > /sys/devices/system/memory/memory0/online
> > 
> > The current implementation will fail the operation after several failed
> > page migration attempts but we shouldn't even attempt to migrate
> > that memory and fail right away because this memory is clearly not
> > migrateable. This will become a real problem when we drop the retry loop
> > counter resp. timeout.
> > 
> > The real problem is in has_unmovable_pages in fact. We should fail if
> > there are any non migrateable pages in the area. In orther to guarantee
> > that remove the migrate type checks because MIGRATE_MOVABLE is not
> > guaranteed to contain only migrateable pages. It is merely a heuristic.
> > Similarly MIGRATE_CMA does guarantee that the page allocator doesn't
> > allocate any non-migrateable pages from the block but CMA allocations
> > themselves are unlikely to migrateable. Therefore remove both checks.
> 
> Hello,
> 
> This patch will break the CMA user. As you mentioned, CMA allocation
> itself isn't migrateable. So, after a single page is allocated through
> CMA allocation, has_unmovable_pages() will return true for this
> pageblock. Then, futher CMA allocation request to this pageblock will
> fail because it requires isolating the pageblock.

Hmm, does this mean that the CMA allocation path depends on
has_unmovable_pages to return false here even though the memory is not
movable? This sounds really strange to me and kind of abuse of this
function. Which path is that? Can we do the migrate type test theres?
-- 
Michal Hocko
SUSE Labs

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ