lkml.org 
[lkml]   [2015]   [Jul]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH 1/2] mm, page_isolation: remove bogus tests for isolated pages
    Date
    On Tue, Jul 21, 2015 at 02:53:37PM +0200, Vlastimil Babka wrote:
    > The __test_page_isolated_in_pageblock() is used to verify whether all pages
    > in pageblock were either successfully isolated, or are hwpoisoned. Two of the
    > possible state of pages, that are tested, are however bogus and misleading.
    >
    > Both tests rely on get_freepage_migratetype(page), which however has no
    > guarantees about pages on freelists. Specifically, it doesn't guarantee that
    > the migratetype returned by the function actually matches the migratetype of
    > the freelist that the page is on. Such guarantee is not its purpose and would
    > have negative impact on allocator performance.
    >
    > The first test checks whether the freepage_migratetype equals MIGRATE_ISOLATE,
    > supposedly to catch races between page isolation and allocator activity. These
    > races should be fixed nowadays with 51bb1a4093 ("mm/page_alloc: add freepage
    > on isolate pageblock to correct buddy list") and related patches. As explained
    > above, the check wouldn't be able to catch them reliably anyway. For the same
    > reason false positives can happen, although they are harmless, as the
    > move_freepages() call would just move the page to the same freelist it's
    > already on. So removing the test is not a bug fix, just cleanup. After this
    > patch, we assume that all PageBuddy pages are on the correct freelist and that
    > the races were really fixed. A truly reliable verification in the form of e.g.
    > VM_BUG_ON() would be complicated and is arguably not needed.
    >
    > The second test (page_count(page) == 0 && get_freepage_migratetype(page)
    > == MIGRATE_ISOLATE) is probably supposed (the code comes from a big memory
    > isolation patch from 2007) to catch pages on MIGRATE_ISOLATE pcplists.
    > However, pcplists don't contain MIGRATE_ISOLATE freepages nowadays, those are
    > freed directly to free lists, so the check is obsolete. Remove it as well.
    >
    > Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
    > Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    > Cc: Minchan Kim <minchan@kernel.org>
    > Cc: Michal Nazarewicz <mina86@mina86.com>
    > Cc: Laura Abbott <lauraa@codeaurora.org>
    > Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>

    Looks good to me.

    Reviewed-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>

    \
     
     \ /
      Last update: 2015-07-23 08:01    [W:2.614 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site