From: mel@skynet.ie (Mel Gorman)
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
apw@shadowen.org, clameter@sgi.com, y-goto@jp.fujitsu.com
Subject: fragmentation avoidance Re: 2.6.22 -mm merge plans
Date: Tue, 1 May 2007 11:16:51 +0100 [thread overview]
Message-ID: <20070501101651.GA29957@skynet.ie> (raw)
In-Reply-To: <20070430162007.ad46e153.akpm@linux-foundation.org>
On (30/04/07 16:20), Andrew Morton didst pronounce:
> add-apply_to_page_range-which-applies-a-function-to-a-pte-range.patch
> add-apply_to_page_range-which-applies-a-function-to-a-pte-range-fix.patch
> safer-nr_node_ids-and-nr_node_ids-determination-and-initial.patch
> use-zvc-counters-to-establish-exact-size-of-dirtyable-pages.patch
> proper-prototype-for-hugetlb_get_unmapped_area.patch
> mm-remove-gcc-workaround.patch
> slab-ensure-cache_alloc_refill-terminates.patch
> mm-more-rmap-checking.patch
> mm-make-read_cache_page-synchronous.patch
> fs-buffer-dont-pageuptodate-without-page-locked.patch
> allow-oom_adj-of-saintly-processes.patch
> introduce-config_has_dma.patch
> mm-slabc-proper-prototypes.patch
> mm-detach_vmas_to_be_unmapped-fix.patch
>
> Misc MM things. Will merge.
After Andy's mail, I am guessing that the patch below is also going here
in the stack as a cleanup.
add-pfn_valid_within-helper-for-sub-max_order-hole-detection.patch
> add-a-bitmap-that-is-used-to-track-flags-affecting-a-block-of-pages.patch
> add-__gfp_movable-for-callers-to-flag-allocations-from-high-memory-that-may-be-migrated.patch
> split-the-free-lists-for-movable-and-unmovable-allocations.patch
> choose-pages-from-the-per-cpu-list-based-on-migration-type.patch
> add-a-configure-option-to-group-pages-by-mobility.patch
> drain-per-cpu-lists-when-high-order-allocations-fail.patch
> move-free-pages-between-lists-on-steal.patch
> group-short-lived-and-reclaimable-kernel-allocations.patch
> group-high-order-atomic-allocations.patch
> do-not-group-pages-by-mobility-type-on-low-memory-systems.patch
> bias-the-placement-of-kernel-pages-at-lower-pfns.patch
> be-more-agressive-about-stealing-when-migrate_reclaimable-allocations-fallback.patch
> fix-corruption-of-memmap-on-ia64-sparsemem-when-mem_section-is-not-a-power-of-2.patch
Plus the patch below from Andy's pfn_valid_within() series would be here:
anti-fragmentation-switch-over-to-pfn_valid_within.patch
These patches are the grouping pages by mobility patches. They get tested
every time someone boots the machine from the perspective that they affect
the page allocator. It is working to keep fragmentation problems to a
minimum and being exercised. We have beaten it heavily here on tests
with a variety of machines using the system that drives test.kernel.org
for both functionality and performance testing. That covers x86, x86_64,
ppc64 and occasionally IA64. Granted, there are corner-case machines out
there or we'd never receive bug reports at all.
They are currently being reviewed by Christoph Lameter. His feedback in
the linux-mm thread "Antifrag patchset comments" has given me a TODO list
which I'm currently working through. So far, there has been no fundamental
mistake in my opinion and the additional work is logical extensions.
The closest thing to a fundamental mistake was grouping pages by
MAX_ORDER_NR_PAGES instead of an arbitrary order. What I did was fine for
x86_64, i386 and ppc64 but not as useful for IA64 with 1GB worth of memory
in MAX_ORDER_NR_PAGES. I also missed some temporary allocations as picked
up in Christophs review.
> create-the-zone_movable-zone.patch
> allow-huge-page-allocations-to-use-gfp_high_movable.patch
> x86-specify-amount-of-kernel-memory-at-boot-time.patch
> ppc-and-powerpc-specify-amount-of-kernel-memory-at-boot-time.patch
> x86_64-specify-amount-of-kernel-memory-at-boot-time.patch
> ia64-specify-amount-of-kernel-memory-at-boot-time.patch
> add-documentation-for-additional-boot-parameter-and-sysctl.patch
> handle-kernelcore=-boot-parameter-in-common-code-to-avoid-boot-problem-on-ia64.patch
>
> Mel's moveable-zone work.
These patches are what creates ZONE_MOVABLE. The last 6 patches should be
collapsed into a single patch:
handle-kernelcore=-generic
I believe Yasunori Goto is looking at these from the perspective of memory
hot-remove and has caught a few bugs in the past. Goto-san may be able to
comment on whether they have been reviewed recently.
The main complexity is in one function in patch one which determines where
the PFN is in each node for ZONE_MOVABLE. Getting that right so that the
requested amount of kernel memory spread as evenly as possible is just
not straight-forward.
> I don't believe that this has had sufficient review and I'm sure that it
> hasn't had sufficient third-party testing. Most of the approbations thus far
> have consisted of people liking the overall idea, based on the changelogs and
> multi-year-old discussions.
>
> For such a large and core change I'd have expected more detailed reviewing
> effort and more third-party testing. And I STILL haven't made time to review
> the code in detail myself.
>
> So I'm a bit uncomfortable with moving ahead with these changes.
>
Ok. It is getting reviewed by Christoph and I'm going through the TODO items
it yielded. Andy has also been regularly reviewing them which is probably
why they have had less public errors than you might expect from something
like this. Christoph may like to comment more here.
> <snip>
>
> lumpy-reclaim-v4.patch
And I guess this patch also moves here
lumpy-move-to-using-pfn_valid_within.patch
>
> This is in a similar situation to the moveable-zone work. Sounds great on
> paper, but it needs considerable third-party testing and review. It is a
> major change to core MM and, we hope, a significant advance. On paper.
Andy will probably comment more here. Like the fragmentation stuff, we have
beaten this heavily in tests.
I'm not sure of it's review situation.
> More Mel things, and linkage between Mel-things and lumpy reclaim. It's here
> where the patch ordering gets into a mess and things won't improve if
> moveable-zones and lumpy-reclaim get deferred. Such a deferral would limit my
> ability to queue more MM changes for 2.6.23.
>
This is where the three patches were originally. From the other thread,
I am assuming these are sorted out.
> <snip>
>
> bias-the-location-of-pages-freed-for-min_free_kbytes-in-the-same-max_order_nr_pages-blocks.patch
> remove-page_group_by_mobility.patch
> dont-group-high-order-atomic-allocations.patch
>
> More moveable-zone work.
>
This is the MIGRATE_RESERVE patch and two patches that back out parts of the
grouping pages by mobility stack. If possible, these patches should move to
the end of that stack. To fix the ordering, would it be helpful to provide
a fresh stack based on 2.6.21? That would delete 4 patches in all. The two
that introduce configuration items and highorder atomic groupings and these
two patches that subsequently remove them.
> <SNIP>
>
> slub-exploit-page-mobility-to-increase-allocation-order.patch
>
> Slub entanglement with moveable-zones. Will merge if moveable-zones is merged.
>
Well, grouping pages by mobility is what it really depends on. The
ZONE_MOVABLE is not required for SLUB. However, I get the point and agree
with it. If the rest of SLUB gets merged, this patch could be moved to the
end of the grouping by mobility stack.
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2007-05-01 10:16 UTC|newest]
Thread overview: 180+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-30 23:20 Andrew Morton
2007-04-30 23:59 ` Bill Irwin
2007-05-01 0:09 ` nfsd/md patches " Neil Brown
2007-05-01 9:08 ` Christoph Hellwig
2007-05-01 9:15 ` Andrew Morton
2007-05-01 9:21 ` Christoph Hellwig
2007-05-01 9:52 ` Neil Brown
2007-05-01 10:15 ` Christoph Hellwig
2007-05-01 14:34 ` Trond Myklebust
2007-05-01 0:54 ` MADV_FREE functionality Rik van Riel
2007-05-01 1:18 ` Andrew Morton
2007-05-01 1:23 ` Rik van Riel
2007-05-01 7:13 ` Jakub Jelinek
2007-05-01 1:23 ` Ulrich Drepper
2007-05-01 1:39 ` 2.6.22 -mm merge plans Stefan Richter
2007-05-01 2:30 ` 2.6.22 -mm merge plans (RE: input) Dmitry Torokhov
2007-05-01 8:11 ` 2.6.22 -mm merge plans -- pfn_valid_within Andy Whitcroft
2007-05-01 8:19 ` Andrew Morton
2007-05-01 8:44 ` 2.6.22 -mm merge plans -- vm bugfixes Nick Piggin
2007-05-01 8:54 ` Andrew Morton
2007-05-01 19:31 ` Hugh Dickins
2007-05-02 3:08 ` Nick Piggin
2007-05-02 9:15 ` Nick Piggin
2007-05-02 14:00 ` Hugh Dickins
2007-05-03 1:32 ` Nick Piggin
2007-05-03 10:37 ` Christoph Hellwig
2007-05-03 12:56 ` Nick Piggin
2007-05-04 9:23 ` Nick Piggin
2007-05-04 9:43 ` Nick Piggin
2007-05-08 3:03 ` Benjamin Herrenschmidt
2007-05-03 12:24 ` Hugh Dickins
2007-05-03 12:43 ` Nick Piggin
2007-05-03 12:58 ` Hugh Dickins
2007-05-03 13:08 ` Nick Piggin
2007-05-03 16:52 ` Andrew Morton
2007-05-04 4:16 ` Nick Piggin
2007-05-09 12:34 ` Nick Piggin
2007-05-09 14:28 ` Hugh Dickins
2007-05-09 14:45 ` Nick Piggin
2007-05-09 15:38 ` Hugh Dickins
2007-05-09 22:24 ` Nick Piggin
2007-05-01 8:46 ` pcmcia ioctl removal Christoph Hellwig
2007-05-01 8:56 ` Russell King
2007-05-01 8:57 ` Willy Tarreau
2007-05-01 9:08 ` Andrew Morton
2007-05-01 14:46 ` Adrian Bunk
2007-05-01 9:16 ` Robert P. J. Day
2007-05-01 9:44 ` Willy Tarreau
2007-05-01 10:16 ` Robert P. J. Day
2007-05-01 10:26 ` Gabriel C
2007-05-01 10:52 ` Willy Tarreau
2007-05-01 10:12 ` Jan Engelhardt
2007-05-01 11:00 ` Willy Tarreau
2007-05-01 12:06 ` Konstantin Münning
2007-05-01 13:56 ` Rogan Dawes
2007-05-01 19:10 ` Russell King
2007-05-01 20:41 ` Jan Engelhardt
2007-05-09 12:54 ` Pavel Machek
2007-05-09 13:00 ` Robert P. J. Day
2007-05-09 13:03 ` Adrian Bunk
2007-05-09 19:11 ` Romano Giannetti
2007-05-10 12:40 ` Adrian Bunk
2007-05-01 8:48 ` pci hotplug patches Christoph Hellwig
2007-05-02 3:57 ` Greg KH
2007-05-13 20:59 ` Christoph Hellwig
2007-05-14 11:48 ` Greg KH
2007-05-01 8:54 ` cache-pipe-buf-page-address-for-non-highmem-arch.patch Christoph Hellwig
2007-05-01 9:04 ` cache-pipe-buf-page-address-for-non-highmem-arch.patch Andrew Morton
2007-05-01 11:31 ` cache-pipe-buf-page-address-for-non-highmem-arch.patch Andi Kleen
2007-05-03 3:48 ` cache-pipe-buf-page-address-for-non-highmem-arch.patch Ken Chen
2007-05-01 8:55 ` consolidate-generic_writepages-and-mpage_writepages.patch Christoph Hellwig
2007-05-01 9:17 ` 2.6.22 -mm merge plans Pekka Enberg
2007-05-01 9:24 ` Christoph Hellwig
2007-05-01 9:37 ` Peter Zijlstra
2007-05-01 12:19 ` Andi Kleen
2007-05-01 17:12 ` Pekka Enberg
2007-05-01 10:16 ` Mel Gorman [this message]
2007-05-01 13:02 ` 2.6.22 -mm merge plans -- lumpy reclaim Andy Whitcroft
2007-05-01 18:03 ` Peter Zijlstra
2007-05-01 19:00 ` Andrew Morton
2007-05-01 14:54 ` fragmentation avoidance Re: 2.6.22 -mm merge plans Christoph Lameter
2007-05-01 19:00 ` Mel Gorman
2007-05-01 18:57 ` Andrew Morton
2007-05-07 13:07 ` Yasunori Goto
2007-05-01 14:31 ` 2.6.22 -mm merge plans: mm-more-rmap-checking Hugh Dickins
2007-05-02 1:42 ` Nick Piggin
2007-05-02 13:17 ` Hugh Dickins
2007-05-03 0:18 ` Nick Piggin
2007-05-01 16:56 ` 2.6.22 -mm merge plans Zan Lynx
2007-05-01 17:06 ` 2.6.22 -mm merge plans: mm-detach_vmas_to_be_unmapped-fix Hugh Dickins
2007-05-01 18:10 ` 2.6.22 -mm merge plans: slub Hugh Dickins
2007-05-01 19:25 ` Christoph Lameter
2007-05-01 19:55 ` Andrew Morton
2007-05-01 20:19 ` Hugh Dickins
2007-05-01 20:36 ` Andrew Morton
2007-05-01 20:46 ` Christoph Lameter
2007-05-01 21:09 ` Andrew Morton
2007-05-02 12:54 ` Hugh Dickins
2007-05-02 17:03 ` Christoph Lameter
2007-05-02 19:11 ` Andrew Morton
2007-05-02 19:42 ` Christoph Lameter
2007-05-02 19:54 ` Sam Ravnborg
2007-05-02 20:14 ` Christoph Lameter
2007-05-02 18:52 ` Siddha, Suresh B
2007-05-02 18:58 ` Christoph Lameter
2007-05-01 21:08 ` Christoph Lameter
2007-05-02 12:45 ` Hugh Dickins
2007-05-02 17:01 ` Christoph Lameter
2007-05-02 18:08 ` Hugh Dickins
2007-05-02 18:28 ` Christoph Lameter
2007-05-02 18:42 ` Andrew Morton
2007-05-02 18:53 ` Christoph Lameter
2007-05-02 17:25 ` Christoph Lameter
2007-05-02 18:36 ` Hugh Dickins
2007-05-02 18:39 ` Christoph Lameter
2007-05-02 18:57 ` Andrew Morton
2007-05-02 19:01 ` Christoph Lameter
2007-05-02 19:18 ` Pekka Enberg
2007-05-02 19:34 ` Christoph Lameter
2007-05-02 19:43 ` Christoph Lameter
2007-05-03 8:15 ` Andrew Morton
2007-05-03 8:27 ` William Lee Irwin III
2007-05-03 16:30 ` Christoph Lameter
2007-05-03 8:46 ` Hugh Dickins
2007-05-03 8:57 ` Andrew Morton
2007-05-03 9:15 ` Hugh Dickins
2007-05-03 21:04 ` 2.6.22 -mm merge plans: slub on PowerPC Hugh Dickins
2007-05-03 21:15 ` Christoph Lameter
2007-05-03 22:41 ` Hugh Dickins
2007-05-04 0:25 ` Benjamin Herrenschmidt
2007-05-04 0:54 ` Christoph Lameter
2007-05-03 16:45 ` 2.6.22 -mm merge plans: slub Christoph Lameter
2007-05-03 15:54 ` swap-prefetch: 2.6.22 -mm merge plans Ingo Molnar
2007-05-03 16:15 ` Michal Piotrowski
2007-05-03 16:23 ` Michal Piotrowski
2007-05-03 22:14 ` Con Kolivas
2007-05-04 7:34 ` Nick Piggin
2007-05-04 8:52 ` Ingo Molnar
2007-05-04 9:09 ` Nick Piggin
2007-05-04 12:10 ` Con Kolivas
2007-05-05 8:42 ` Con Kolivas
2007-05-06 10:13 ` [ck] " Antonino Ingargiola
2007-05-06 18:22 ` Jory A. Pratt
2007-05-09 23:28 ` Con Kolivas
2007-05-10 0:05 ` Nick Piggin
2007-05-10 1:34 ` Con Kolivas
2007-05-10 1:56 ` Nick Piggin
2007-05-10 3:48 ` Ray Lee
2007-05-10 3:56 ` Nick Piggin
2007-05-10 5:52 ` Ray Lee
2007-05-10 7:04 ` Nick Piggin
2007-05-10 7:20 ` William Lee Irwin III
2007-05-10 12:34 ` Ray Lee
2007-05-12 4:46 ` [PATCH] mm: swap prefetch improvements Con Kolivas
2007-05-12 5:03 ` Paul Jackson
2007-05-12 5:15 ` Con Kolivas
2007-05-12 5:51 ` Paul Jackson
2007-05-12 7:28 ` Con Kolivas
2007-05-12 8:14 ` Paul Jackson
2007-05-12 8:21 ` Con Kolivas
2007-05-12 8:37 ` Paul Jackson
2007-05-12 8:57 ` [PATCH respin] " Con Kolivas
2007-05-21 10:03 ` [PATCH] " Ingo Molnar
2007-05-21 13:44 ` Con Kolivas
2007-05-21 16:00 ` Ingo Molnar
2007-05-22 10:15 ` Antonino Ingargiola
2007-05-22 10:20 ` Con Kolivas
2007-05-22 10:25 ` Ingo Molnar
2007-05-22 10:37 ` Con Kolivas
2007-05-22 10:46 ` Ingo Molnar
2007-05-22 10:54 ` Con Kolivas
2007-05-22 10:57 ` Ingo Molnar
2007-05-22 11:04 ` Con Kolivas
[not found] ` <20070522111104.GA14950@elte.hu>
2007-05-22 11:12 ` Ingo Molnar
2007-05-22 20:18 ` [ck] " Michael Chang
2007-05-22 20:31 ` Ingo Molnar
2007-05-10 3:58 ` swap-prefetch: 2.6.22 -mm merge plans Con Kolivas
2007-05-07 14:28 ` Bill Davidsen
2007-05-07 14:18 ` Bill Davidsen
2007-05-07 17:47 ` Josef Sipek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070501101651.GA29957@skynet.ie \
--to=mel@skynet.ie \
--cc=akpm@linux-foundation.org \
--cc=apw@shadowen.org \
--cc=clameter@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=y-goto@jp.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox