Messages in this thread Patch in this message | | | Date | Tue, 1 Sep 2009 11:03:56 +0100 | From | Mel Gorman <> | Subject | Re: page allocator regression on nommu |
| |
On Tue, Sep 01, 2009 at 09:46:27AM +0900, Paul Mundt wrote: > > What is the output of the following debug patch? > > > > ... > Inode-cache hash table entries: 1024 (order: 0, 4096 bytes) > ------------[ cut here ]------------ > Badness at mm/page_alloc.c:1046 >
Ok, it looks like ownership was not being taken properly and the first patch was incomplete. Please try
====
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index d052abb..5596880 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -817,13 +815,15 @@ __rmqueue_fallback(struct zone *zone, int order, int start_migratetype) * agressive about taking ownership of free pages */ if (unlikely(current_order >= (pageblock_order >> 1)) || - start_migratetype == MIGRATE_RECLAIMABLE) { + start_migratetype == MIGRATE_RECLAIMABLE || + page_group_by_mobility_disabled) { unsigned long pages; pages = move_freepages_block(zone, page, start_migratetype); /* Claim the whole block if over half of it is free */ - if (pages >= (1 << (pageblock_order-1))) + if (pages >= (1 << (pageblock_order-1)) || + page_group_by_mobility_disabled) set_pageblock_migratetype(page, start_migratetype);
| |