From: mel@skynet.ie (Mel Gorman)
To: Christoph Lameter <clameter@sgi.com>
Cc: akpm@linux-foundatin.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: Re: [patch 00/23] Slab defragmentation V6
Date: Thu, 8 Nov 2007 20:24:30 +0000 [thread overview]
Message-ID: <20071108202429.GF23882@skynet.ie> (raw)
In-Reply-To: <Pine.LNX.4.64.0711081103360.8954@schroedinger.engr.sgi.com>
On (08/11/07 11:12), Christoph Lameter didst pronounce:
> On Thu, 8 Nov 2007, Mel Gorman wrote:
>
> > On Tue, 2007-11-06 at 17:11 -0800, Christoph Lameter wrote:
> > > Slab defragmentation is mainly an issue if Linux is used as a fileserver
> >
> > Was hoping this would get renamed to SLUB Targetted Reclaim from
> > discussions at VM Summit. As no copying is taking place, it's confusing
> > to call it defragmentation to me anyway. Not a major deal but it made
> > reading the patches a little confusing.
>
> The problem is that people are focusing on one feature here and forget
> about the rest. Targetted reclaim is one feature that was added later when
> lumpy reclaim was added to the kernel. The primary intend of this patchset
> was always to reduce the fragmentation. The name is appropriate and the
> patchset will support copying of objects as soon as support for that is
> added to the kick(). In that case the copying you are looking for will be
> there. The simple implementation for the kick() methods is to simply copy
> pieces of the reclaim code. That is what is included here.
>
Ok, fair enough logic and it's a bit clearer in my head how to separate them
out. Thanks
> > > With lumpy reclaim slab defragmentation can be used to enhance the
> > > ability to recover larger contiguous areas of memory. Lumpy reclaim currently
> > > cannot do anything if a slab page is encountered. With slab defragmentation
> > > that slab page can be removed and a large contiguous page freed. It may
> > > be possible to have slab pages also part of ZONE_MOVABLE (Mel's defrag
> > > scheme in 2.6.23)
> >
> > More terminology nit-pick - ZONE_MOVABLE is not defragmenting anything.
> > It's just partitioning memory. The slab pages need to be 100%
> > reclaimable or movable for that to happen but even with targetted
> > reclaim, some dentries such as the root directory one cannot be
> > reclaimed, right?
>
> 100%? I am so fond of these categorical statements ....
>
Yeah, they are great for all occasions.
In fairness when the time comes, I can do a few tests using the hugepage
allocation tests with ZONE_MOVABLE and Badari might do a few tests with
memory hot-remove. Currently, the success rates for these tests are 100%
within ZONE_MOVABLE although that is without locked pages. Hot-remove
should be able to deal with locked pages but hugepage allocation wouldn't
as lumpy-reclaim would fail. If we allow slab pages to use the zone and the
success rates drop, it'll be obvious which is a plus at least.
> ZONE_MOVABLE also contains mlocked pages that are also not reclaimable.
True, but they are movable so for example memory hot-remove is able to
deal with them and the memory compaction patches should have been able
to deal with it too.
> The question is at what level would it be possible to make them MOVABLE?
> It may take some improvements to the kick() methods to make eviction more
> reliable. Allowing the moving of objects in the kick() methods will
> likely get usthere.
>
It certainly can be tried out. However, this is a future problem and
independent of the current patchset. I don't want to drag us down a blind
alley about a problem that isn't even at hand.
Right now, I think the set looks in good shape for wider testing and appears
to solve a major part of the slab fragmentation problem. Assuming I don't
fall down a hole testing one-zonelist and the mm-broken-out patches, I'll
get to testing these patches as well.
> > It'd still be valid to leave them as MIGRATE_RECLAIMABLE because that is
> > what they are. Arguably, MIGRATE_RECLAIMABLE could be dropped in it's
> > entirety but I'd rather not as reclaimable blocks have significantly
> > different reclaim costs to pages that are currently marked movable.
>
> Right. That would simplify the antifrag methods. Is there any way to
> measure the reclaim costs?
>
Regrettably, no.
> > > V5->V6
> > > - Rediff against 2.6.24-rc2 + mm slub patches.
> > > - Add reviewed by lines.
> > > - Take out the experimental code to make slab pages movable. That
> > > has to wait until this has been considered by Mel.
> > >
> >
> > I still haven't considered them properly. I've been backlogged for I
> > don't know how long at this point and this is on the increasingly large
> > todo list :( . I don't believe it is massively urgent at the moment
> > though and reclaiming to start with is perfectly adequate just as lumpy
> > reclaim is fine at the moment.
>
> Right. We can defer this for now.
>
Agreed.
--
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-11-08 20:24 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-07 1:11 Christoph Lameter
2007-11-07 1:11 ` [patch 01/23] SLUB: Move count_partial() Christoph Lameter
2007-11-07 1:11 ` [patch 02/23] SLUB: Rename NUMA defrag_ratio to remote_node_defrag_ratio Christoph Lameter
2007-11-08 14:50 ` Mel Gorman
2007-11-08 17:25 ` Matt Mackall
2007-11-08 19:16 ` Christoph Lameter
2007-11-08 19:47 ` Matt Mackall
2007-11-08 20:01 ` Christoph Lameter
2007-11-08 21:03 ` Matt Mackall
2007-11-08 21:28 ` Christoph Lameter
2007-11-08 23:08 ` Matt Mackall
2007-11-08 18:56 ` Christoph Lameter
2007-11-08 20:10 ` Mel Gorman
2007-11-07 1:11 ` [patch 03/23] bufferhead: Revert constructor removal Christoph Lameter
2007-11-07 1:11 ` [patch 04/23] dentries: Extract common code to remove dentry from lru Christoph Lameter
2007-11-07 8:50 ` Johannes Weiner
2007-11-07 9:43 ` Jörn Engel
2007-11-07 18:55 ` Christoph Lameter
2007-11-07 18:54 ` Jörn Engel
2007-11-07 19:00 ` Christoph Lameter
2007-11-07 18:28 ` Christoph Lameter
2007-11-07 1:11 ` [patch 05/23] VM: Allow get_page_unless_zero on compound pages Christoph Lameter
2007-11-07 1:11 ` [patch 06/23] SLUB: Extend slabinfo to support -D and -C options Christoph Lameter
2007-11-08 15:00 ` Mel Gorman
2007-11-07 1:11 ` [patch 07/23] SLUB: Add defrag_ratio field and sysfs support Christoph Lameter
2007-11-07 8:55 ` Johannes Weiner
2007-11-07 18:30 ` Christoph Lameter
2007-11-08 15:07 ` Mel Gorman
2007-11-08 18:59 ` Christoph Lameter
2007-11-07 1:11 ` [patch 08/23] SLUB: Replace ctor field with ops field in /sys/slab/:0000008 /sys/slab/:0000016 /sys/slab/:0000024 /sys/slab/:0000032 /sys/slab/:0000040 /sys/slab/:0000048 /sys/slab/:0000056 /sys/slab/:0000064 /sys/slab/:0000072 /sys/slab/:0000080 /sys/slab/:0000088 /sys/slab/:0000096 /sys/slab/:0000104 /sys/slab/:0000128 /sys/slab/:0000144 /sys/slab/:0000184 /sys/slab/:0000192 /sys/slab/:0000216 /sys/slab/:0000256 /sys/slab/:0000344 /sys/slab/:0000384 /sys/slab/:0000448 /sys/slab/:0000512 /sys/slab/:0000768 /sys/slab/:0000968 /sys/slab/:0001024 /sys/slab/:0001152 /sys/slab/:0001312 /sys/slab/:0001536 /sys/slab/:0002048 /sys/slab/:0003072 /sys/slab/:0004096 /sys/slab/:a-0000016 /sys/slab/:a-0000024 /sys/slab/:a-0000056 /sys/slab/:a-0000080 /sys/slab/:a-0000128 /sys/slab/Acpi-Namesp ace /sys/slab/Acpi-Operand /sys/slab/Acpi-Parse /sys/slab/Acpi-ParseExt /sys/slab/Acpi-State /sys/ Christoph Lameter
2007-11-07 1:11 ` [patch 09/23] SLUB: Add get() and kick() methods Christoph Lameter
2007-11-07 2:37 ` Adrian Bunk
2007-11-07 3:07 ` Christoph Lameter
2007-11-07 3:26 ` Adrian Bunk
2007-11-07 1:11 ` [patch 10/23] SLUB: Sort slab cache list and establish maximum objects for defrag slabs Christoph Lameter
2007-11-07 1:11 ` [patch 11/23] SLUB: Slab defrag core Christoph Lameter
2007-11-07 22:13 ` Christoph Lameter
2007-11-07 1:11 ` [patch 12/23] SLUB: Trigger defragmentation from memory reclaim Christoph Lameter
2007-11-07 9:28 ` Johannes Weiner
2007-11-07 18:34 ` Christoph Lameter
2007-11-08 15:12 ` Mel Gorman
2007-11-08 19:00 ` Christoph Lameter
2007-11-07 1:11 ` [patch 13/23] Buffer heads: Support slab defrag Christoph Lameter
2007-11-07 1:11 ` [patch 14/23] inodes: Support generic defragmentation Christoph Lameter
2007-11-07 10:17 ` Jörn Engel
2007-11-07 10:31 ` Jörn Engel
2007-11-07 10:35 ` Andreas Schwab
2007-11-07 10:35 ` Jörn Engel
2007-11-07 18:40 ` Christoph Lameter
2007-11-07 18:51 ` Jörn Engel
2007-11-07 19:00 ` Christoph Lameter
2007-11-07 1:11 ` [patch 15/23] FS: ExtX filesystem defrag Christoph Lameter
2007-11-07 1:11 ` [patch 16/23] FS: XFS slab defragmentation Christoph Lameter
2007-11-07 1:11 ` [patch 17/23] FS: Proc filesystem support for slab defrag Christoph Lameter
2007-11-07 1:11 ` [patch 18/23] FS: Slab defrag: Reiserfs support Christoph Lameter
2007-11-07 1:11 ` [patch 19/23] FS: Socket inode defragmentation Christoph Lameter
2007-11-07 1:11 ` [patch 20/23] dentries: Add constructor Christoph Lameter
2007-11-08 15:23 ` Mel Gorman
2007-11-08 19:03 ` Christoph Lameter
2007-11-07 1:11 ` [patch 21/23] dentries: dentry defragmentation Christoph Lameter
2007-11-07 1:11 ` [patch 22/23] SLUB: Slab reclaim through Lumpy reclaim Christoph Lameter
2007-11-07 1:11 ` [patch 23/23] SLUB: Add SlabReclaimable() to avoid repeated reclaim attempts Christoph Lameter
2007-11-08 15:26 ` [patch 00/23] Slab defragmentation V6 Mel Gorman
2007-11-08 16:01 ` Plans for Onezonelist patch series ??? Lee Schermerhorn
2007-11-08 18:34 ` Christoph Lameter
2007-11-08 18:40 ` Mel Gorman
2007-11-08 18:43 ` Christoph Lameter
2007-11-08 20:06 ` Mel Gorman
2007-11-08 20:20 ` Christoph Lameter
2007-11-08 20:29 ` Mel Gorman
2007-11-08 18:39 ` Mel Gorman
2007-11-08 19:39 ` Christoph Lameter
2007-11-08 19:12 ` [patch 00/23] Slab defragmentation V6 Christoph Lameter
2007-11-08 20:24 ` Mel Gorman [this message]
2007-11-08 20:28 ` Christoph Lameter
2007-11-08 20:58 ` Lee Schermerhorn
2007-11-08 21:27 ` 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=20071108202429.GF23882@skynet.ie \
--to=mel@skynet.ie \
--cc=akpm@linux-foundatin.org \
--cc=clameter@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
/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