lkml.org 
[lkml]   [2010]   [Aug]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] Make is_mem_section_removable more conformable with offlining code
    Hi,

    On Mon 23-08-10 11:22:46, Michal Hocko wrote:
    > On Sun 22-08-10 08:42:32, Wu Fengguang wrote:
    > > Hi Michal,
    >
    > Hi,
    >
    > >
    > > It helps to explain in changelog/code
    > >
    > > - in what situation a ZONE_MOVABLE will contain !MIGRATE_MOVABLE
    > > pages?
    >
    > page can be MIGRATE_RESERVE IIUC.
    >
    > > And why the MIGRATE_MOVABLE test is still necessary given the
    > > ZONE_MOVABLE check?
    >
    > I would assume that the MIGRATE_MOVABLE test is not necessary (given that
    > the whole zone is set as movable) but this test is used also in the
    > offlining path (in set_migratetype_isolate) and the primary reason for
    > this patch is to sync those two checks.
    >
    > I am not familiar with all the possible cases for migrate flags so the
    > test reduction should be better done by someone more familiar with the
    > code (the zone flag test is much more easier than the whole
    > get_pageblock_migratetype so this could be a win in the end).
    >
    > >
    > > - why do you think free pages are not removeable? Simply to cater for
    > > the set_migratetype_isolate() logic, or there are more fundamental
    > > reasons?
    >
    > Free pages can be from non movable zone, right? I know that having a
    > zone with the free page blocks in non-movable zone is extremely
    > improbable but what is the point of this check anyway? So yes, this is
    > more to be in sync than anything more fundamental.

    Are there any other comments on this? Is the patch reasonable at all?

    >
    > >
    > > Thanks,
    > > Fengguang
    > >
    > > On Fri, Aug 20, 2010 at 04:14:00PM +0200, Michal Hocko wrote:
    > > > Hi,
    > > > what do you think about the patch below?
    > > >
    > > > >From b983695b92b5be58f31c719fada1d3245f7b6768 Mon Sep 17 00:00:00 2001
    > > > From: Michal Hocko <mhocko@suse.cz>
    > > > Date: Fri, 20 Aug 2010 15:39:16 +0200
    > > > Subject: [PATCH] Make is_mem_section_removable more conformable with offlining code
    > > >
    > > > Currently is_mem_section_removable checks whether each pageblock from
    > > > the given pfn range is of MIGRATE_MOVABLE type or if it is free. If both
    > > > are false then the range is considered non removable.
    > > >
    > > > On the other hand, offlining code (more specifically
    > > > set_migratetype_isolate) doesn't care whether a page is free and instead
    > > > it just checks the migrate type of the page and whether the page's zone
    > > > is movable.
    > > >
    > > > This can lead into a situation when a node is marked as removable even
    > > > though all pages are neither MIGRATE_MOVABLE nor the zone is
    > > > ZONE_MOVABLE.
    > > >
    > > > Also we can mark a node as not removable just because a pageblock is
    > > > MIGRATE_RESERVE and not free (and this situation is much more probable).
    > > > ---
    > > > mm/memory_hotplug.c | 6 +++---
    > > > 1 files changed, 3 insertions(+), 3 deletions(-)
    > > >
    > > > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
    > > > index a4cfcdc..da20568 100644
    > > > --- a/mm/memory_hotplug.c
    > > > +++ b/mm/memory_hotplug.c
    > > > @@ -611,10 +611,10 @@ int is_mem_section_removable(unsigned long start_pfn, unsigned long nr_pages)
    > > > type = get_pageblock_migratetype(page);
    > > >
    > > > /*
    > > > - * A pageblock containing MOVABLE or free pages is considered
    > > > - * removable
    > > > + * A pageblock containing MOVABLE or page from movable
    > > > + * zone are considered removable
    > > > */
    > > > - if (type != MIGRATE_MOVABLE && !pageblock_free(page))
    > > > + if (type != MIGRATE_MOVABLE && zone_idx(page) != ZONE_MOVABLE)
    > > > return 0;
    > > >
    > > > /*

    --
    Michal Hocko
    L3 team
    SUSE LINUX s.r.o.
    Lihovarska 1060/12
    190 00 Praha 9
    Czech Republic


    \
     
     \ /
      Last update: 2010-08-31 14:33    [W:0.038 / U:31.300 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site