From: Mel Gorman <mel@csn.ul.ie>
To: Christoph Lameter <clameter@sgi.com>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>,
Nick Piggin <npiggin@suse.de>,
Andrew Morton <akpm@linux-foundation.org>,
linux-mm@kvack.org
Subject: Re: [patch 4/5] slub: Use __GFP_MOVABLE for slabs of HPAGE_SIZE
Date: Thu, 14 Feb 2008 14:14:42 +0000 [thread overview]
Message-ID: <20080214141442.GF17641@csn.ul.ie> (raw)
In-Reply-To: <20080214040314.118141086@sgi.com>
On (13/02/08 20:02), Christoph Lameter didst pronounce:
> This is the same trick as done by the hugetlb support in the kernel.
> If we allocate a huge page use __GFP_MOVABLE because an allocation
> of a HUGE_PAGE size is the large allocation unit that cannot cause
> fragmentation.
>
> This will make a system that was booted with
>
> slub_min_order = 9
>
> not have any reclaimable slab allocations anymore. All slab allocations
> will be of type MOVABLE (although they are not movable like huge pages
> are also not movable). This means that we only have MOVABLE and UNMOVABLE
> sections of memory which reduces the types of sections and therefore the
> danger of fragmenting memory.
hmmm.
The only reason to have an allocation like this set as MOVABLE is so it can
make use of the partition created by movablecore= which has a few specific
purposes. One of them is that on a shared system, a partition can be created
that is of the same size as the largest hugepage pool required for any job. As
jobs run, they can grow or shrink the pool as desired. When the jobs complete,
the hugepages are no longer in use and the partition becomes essentially free.
SLAB pages do not have the same property. Even with all processes exited,
there will be slab allocations lying around, probably in this partition
preventing the hugepage pool being resized (or memory hot-remove for that
matter which can work on a section-boundary on POWER).
If the administrator has created a partition for memory hot-remove or
for having a known quantity when resizing the hugepage pool, it is
unlikely they want SLAB pages to be allocated from the same place
putting a spanner in the works. Without the partition and
slub_min_order==hugepage_size, this patch does nothing so;
NACK.
>
> Signed-off-by: Christoph Lameter <clameter@sgi.com>
>
> ---
> mm/slub.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> Index: linux-2.6/mm/slub.c
> ===================================================================
> --- linux-2.6.orig/mm/slub.c 2008-02-13 18:57:16.036710088 -0800
> +++ linux-2.6/mm/slub.c 2008-02-13 18:59:08.561004851 -0800
> @@ -2363,6 +2363,10 @@ static int calculate_sizes(struct kmem_c
> if (s->flags & SLAB_CACHE_DMA)
> s->allocflags |= SLUB_DMA;
>
> + if (s->order && s->order == get_order(HPAGE_SIZE))
> + /* Huge pages are always allocated as movable */
> + s->allocflags |= __GFP_MOVABLE;
> + else
> if (s->flags & SLAB_RECLAIM_ACCOUNT)
> s->allocflags |= __GFP_RECLAIMABLE;
>
>
> --
>
--
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:[~2008-02-14 14:14 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20080214040245.915842795@sgi.com>
[not found] ` <20080214040314.388752493@sgi.com>
2008-02-14 7:14 ` [patch 5/5] slub: Large allocs for other slab sizes that do not fit in order 0 Pekka Enberg
2008-02-14 19:06 ` Christoph Lameter
2008-02-14 8:55 ` Pekka Enberg
[not found] ` <20080214040313.318658830@sgi.com>
2008-02-14 7:23 ` [patch 1/5] slub: Determine gfpflags once and not every time a slab is allocated Pekka Enberg
2008-02-14 13:55 ` Mel Gorman
[not found] ` <20080214040313.616551392@sgi.com>
2008-02-14 7:04 ` [patch 2/5] slub: Fallback to kmalloc_large for failing higher order allocs Pekka Enberg
2008-02-14 8:56 ` Pekka Enberg
2008-02-14 19:07 ` Christoph Lameter
2008-02-14 14:06 ` Mel Gorman
2008-02-14 19:10 ` Christoph Lameter
2008-02-14 19:23 ` Pekka Enberg
2008-02-14 19:32 ` Christoph Lameter
2008-02-14 19:47 ` Pekka Enberg
2008-02-14 19:57 ` Christoph Lameter
2008-02-14 20:02 ` Pekka Enberg
2008-02-14 20:08 ` Christoph Lameter
2008-02-14 20:13 ` Pekka Enberg
[not found] ` <20080214040314.118141086@sgi.com>
2008-02-14 7:07 ` [patch 4/5] slub: Use __GFP_MOVABLE for slabs of HPAGE_SIZE Pekka Enberg
2008-02-14 19:04 ` Christoph Lameter
2008-02-14 8:57 ` Pekka Enberg
2008-02-14 19:07 ` Christoph Lameter
2008-02-14 14:14 ` Mel Gorman [this message]
2008-02-14 19:18 ` Christoph Lameter
2008-02-14 20:08 ` Mel Gorman
2008-02-14 20:14 ` Christoph Lameter
2008-02-14 20:25 ` Mel Gorman
2008-02-14 20:32 ` Christoph Lameter
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=20080214141442.GF17641@csn.ul.ie \
--to=mel@csn.ul.ie \
--cc=akpm@linux-foundation.org \
--cc=clameter@sgi.com \
--cc=linux-mm@kvack.org \
--cc=npiggin@suse.de \
--cc=penberg@cs.helsinki.fi \
/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;
as well as URLs for NNTP newsgroup(s).