linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
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>

  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