All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] Create ZONE_MOVABLE to partition memory between movable and non-movable pages
@ 2007-01-25 23:44 ` Mel Gorman
  0 siblings, 0 replies; 104+ messages in thread
From: Mel Gorman @ 2007-01-25 23:44 UTC (permalink / raw)
  To: linux-mm; +Cc: Mel Gorman, linux-kernel

The following 8 patches against 2.6.20-rc4-mm1 create a zone called
ZONE_MOVABLE that is only usable by allocations that specify both __GFP_HIGHMEM
and __GFP_MOVABLE. This has the effect of keeping all non-movable pages
within a single memory partition while allowing movable allocations to be
satisified from either partition.

The size of the zone is determined by a kernelcore= parameter specified at
boot-time. This specifies how much memory is usable by non-movable allocations
and the remainder is used for ZONE_MOVABLE. Any range of pages within
ZONE_MOVABLE can be released by migrating the pages or by reclaiming.

When selecting a zone to take pages from for ZONE_MOVABLE, there are two
things to consider. First, only memory from the highest populated zone is
used for ZONE_MOVABLE. On the x86, this is probably going to be ZONE_HIGHMEM
but it would be ZONE_DMA on ppc64 or possibly ZONE_DMA32 on x86_64. Second,
the amount of memory usable by the kernel will be spreadly evenly throughout
NUMA nodes where possible. If the nodes are not of equal size, the amount
of memory usable by the kernel on some nodes may be greater than others.

By default, the zone is not as useful for hugetlb allocations because they
are pinned and non-migratable (currently at least). A sysctl is provided that
allows huge pages to be allocated from that zone. This means that the huge
page pool can be resized to the size of ZONE_MOVABLE during the lifetime of
the system assuming that pages are not mlocked. Despite huge pages being
non-movable, we do not introduce additional external fragmentation of note
as huge pages are always the largest contiguous block we care about.

A lot of credit goes to Andy Whitcroft for catching a large variety of
problems during review of the patches.
-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

^ permalink raw reply	[flat|nested] 104+ messages in thread

end of thread, other threads:[~2007-02-02  5:28 UTC | newest]

Thread overview: 104+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-01-25 23:44 [PATCH 0/8] Create ZONE_MOVABLE to partition memory between movable and non-movable pages Mel Gorman
2007-01-25 23:44 ` Mel Gorman
2007-01-25 23:45 ` [PATCH 1/8] Add __GFP_MOVABLE for callers to flag allocations that may be migrated Mel Gorman
2007-01-25 23:45   ` Mel Gorman
2007-01-26 12:27   ` Nick Piggin
2007-01-26 12:27     ` Nick Piggin
2007-01-26 13:25     ` Mel Gorman
2007-01-26 13:25       ` Mel Gorman
2007-01-25 23:45 ` [PATCH 2/8] Create the ZONE_MOVABLE zone Mel Gorman
2007-01-25 23:45   ` Mel Gorman
2007-01-26 16:28   ` Christoph Lameter
2007-01-26 16:28     ` Christoph Lameter
2007-01-26 16:49     ` Mel Gorman
2007-01-26 16:49       ` Mel Gorman
2007-01-29 17:28     ` Mel Gorman
2007-01-29 17:28       ` Mel Gorman
2007-01-26 17:16   ` Christoph Lameter
2007-01-26 17:16     ` Christoph Lameter
2007-01-26 17:24     ` Mel Gorman
2007-01-26 17:24       ` Mel Gorman
2007-01-26 17:25       ` Christoph Lameter
2007-01-26 17:25         ` Christoph Lameter
2007-01-26 17:38         ` Mel Gorman
2007-01-26 17:38           ` Mel Gorman
2007-01-29 17:31     ` Mel Gorman
2007-01-29 17:31       ` Mel Gorman
2007-01-25 23:45 ` [PATCH 3/8] Allow huge page allocations to use GFP_HIGH_MOVABLE Mel Gorman
2007-01-25 23:45   ` Mel Gorman
2007-01-26 16:33   ` Christoph Lameter
2007-01-26 16:33     ` Christoph Lameter
2007-01-26 16:58     ` Mel Gorman
2007-01-26 16:58       ` Mel Gorman
2007-01-26 17:04       ` Christoph Lameter
2007-01-26 17:04         ` Christoph Lameter
2007-01-26 17:20         ` Mel Gorman
2007-01-26 17:20           ` Mel Gorman
2007-01-26 17:22           ` Christoph Lameter
2007-01-26 17:22             ` Christoph Lameter
2007-01-26 17:37             ` Mel Gorman
2007-01-26 17:37               ` Mel Gorman
2007-01-26 17:45               ` Christoph Lameter
2007-01-26 17:45                 ` Christoph Lameter
2007-01-26 17:53                 ` Mel Gorman
2007-01-26 17:53                   ` Mel Gorman
2007-01-26 18:20                   ` Christoph Lameter
2007-01-26 18:20                     ` Christoph Lameter
2007-01-26 20:37                     ` Mel Gorman
2007-01-26 20:37                       ` Mel Gorman
2007-01-26 18:35                   ` Chris Friesen
2007-01-26 18:35                     ` Chris Friesen
2007-01-26 20:44                     ` Mel Gorman
2007-01-26 20:44                       ` Mel Gorman
2007-01-26 21:37                       ` Chris Friesen
2007-01-26 21:37                         ` Chris Friesen
2007-01-25 23:46 ` [PATCH 4/8] x86 - Specify amount of kernel memory at boot time Mel Gorman
2007-01-25 23:46   ` Mel Gorman
2007-01-25 23:46 ` [PATCH 5/8] ppc and powerpc " Mel Gorman
2007-01-25 23:46   ` Mel Gorman
2007-01-25 23:46 ` [PATCH 6/8] x86_64 " Mel Gorman
2007-01-25 23:46   ` Mel Gorman
2007-01-25 23:47 ` [PATCH 7/8] ia64 " Mel Gorman
2007-01-25 23:47   ` Mel Gorman
2007-01-25 23:47 ` [PATCH 8/8] Add documentation for additional boot parameter and sysctl Mel Gorman
2007-01-25 23:47   ` Mel Gorman
2007-01-26 11:07 ` [PATCH 0/8] Create ZONE_MOVABLE to partition memory between movable and non-movable pages Andrew Morton
2007-01-26 11:07   ` Andrew Morton
2007-01-26 14:29   ` Mel Gorman
2007-01-26 14:29     ` Mel Gorman
2007-01-26 16:01     ` Christoph Lameter
2007-01-26 16:01       ` Christoph Lameter
2007-01-26 15:56   ` Christoph Lameter
2007-01-26 15:56     ` Christoph Lameter
2007-01-26 19:46     ` Andrew Morton
2007-01-26 19:46       ` Andrew Morton
2007-01-26 19:58       ` Christoph Lameter
2007-01-26 19:58         ` Christoph Lameter
2007-01-26 20:27         ` Andrew Morton
2007-01-26 20:27           ` Andrew Morton
2007-01-29 21:54           ` Christoph Lameter
2007-01-29 21:54             ` Christoph Lameter
2007-01-29 22:36             ` Andrew Morton
2007-01-29 22:36               ` Andrew Morton
2007-01-29 22:45               ` Christoph Lameter
2007-01-29 22:45                 ` Christoph Lameter
2007-01-29 22:50                 ` Russell King
2007-01-29 22:50                   ` Russell King
2007-01-29 23:37                   ` Christoph Lameter
2007-01-29 23:37                     ` Christoph Lameter
2007-01-30  0:09                     ` Andrew Morton
2007-01-30  0:09                       ` Andrew Morton
2007-01-30  9:53                       ` Peter Zijlstra
2007-01-30  9:53                         ` Peter Zijlstra
2007-02-02  5:27                         ` Christoph Lameter
2007-02-02  5:27                           ` Christoph Lameter
2007-02-02  5:22                       ` Christoph Lameter
2007-02-02  5:22                         ` Christoph Lameter
2007-01-26 16:21 ` Christoph Lameter
2007-01-26 16:21   ` Christoph Lameter
2007-01-26 16:48   ` Mel Gorman
2007-01-26 16:48     ` Mel Gorman
2007-01-26 17:02     ` Christoph Lameter
2007-01-26 17:02       ` Christoph Lameter
2007-01-26 17:20       ` Mel Gorman
2007-01-26 17:20         ` Mel Gorman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.