From: clameter@sgi.com
To: akpm@linux-foundation.org
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, dgc@sgi.com,
Hugh Dickins <hugh@veritas.com>
Subject: [patch 00/10] Slab defragmentation V2
Date: Fri, 18 May 2007 11:10:40 -0700 [thread overview]
Message-ID: <20070518181040.465335396@sgi.com> (raw)
Hugh: Could you have a look at this? There is lots of critical locking
here....
Support for Slab defragmentation and targeted reclaim. The current
state of affairs is that a large portion of inode and dcache slab caches
can be effectively reclaimed. The remaining problems are:
1. We cannot reclaim dentries / inodes that are in active use.
Probably inadvisable anyways and maybe impossible if we cannot track
down all the references to dentries. The active dentries / inodes are
usually only a small subset of the inode / dentries in the system.
2. Directory reclaim is an issue both for dentries and inodes. A solution
here may be complex. However, the majority of dentries and inodes are
*not* directories. So I think that we are fine even without being
able to reclaim slabs with directory entries in them. These slabs
will move to the head of the partial list and soon be filled up with
other entries. This means that the directory entries will tend to
aggregate over time in certain slabs.
Slab defragmentation is performed during kmem_cache_shrink. This is usually
triggered through the slab shrinkers but can also be manually triggered
through the slabinfo command by running "slabinfo -s".
Support is also provided for antifrag/defrag to evict a specific slab page
through the kmem_cache_vacate function call. Since we can now target the
freeing of slab pages we may now be able to remove a page that hinders
the freeing of a higher order page in the antifrag/defrag code.
V1->V2
- Clean up control flow using a state variable. Simplify API. Back to 2
functions that now take arrays of objects.
- Inode defrag support for a set of filesystems
- Fix up dentry defrag support to work on negative dentries by adding
a new dentry flag that indicates that a dentry is not in the process
of being freed or allocated.
--
next reply other threads:[~2007-05-18 18:10 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-18 18:10 clameter [this message]
2007-05-18 18:10 ` [patch 01/10] SLUB: add support for kmem_cache_ops clameter
2007-05-19 12:53 ` Pekka Enberg
2007-05-19 18:19 ` Christoph Lameter
2007-05-20 21:16 ` Pekka Enberg
2007-05-18 18:10 ` [patch 02/10] SLUB: slab defragmentation and kmem_cache_vacate clameter
2007-05-21 14:10 ` Mel Gorman
2007-05-21 17:01 ` Christoph Lameter
2007-05-18 18:10 ` [patch 03/10] Dentry defragmentation clameter
2007-05-18 18:10 ` [patch 04/10] Generic inode defragmentation clameter
2007-05-18 18:10 ` [patch 05/10] reiserfs: inode defragmentation support clameter
2007-05-18 18:10 ` [patch 06/10] xfs: " clameter
2007-05-18 18:26 ` Christoph Lameter
2007-05-18 18:10 ` [patch 07/10] procfs: " clameter
2007-05-18 18:10 ` [patch 08/10] shmem: " clameter
2007-05-18 20:34 ` Jan Engelhardt
2007-05-18 21:04 ` Christoph Lameter
2007-05-18 18:10 ` [patch 09/10] sockets: " clameter
2007-05-18 18:10 ` [patch 10/10] ext2 ext3 ext4: support inode slab defragmentation clameter
2007-05-18 20:32 ` Jan Engelhardt
2007-05-18 21:03 ` Christoph Lameter
2007-05-18 18:29 ` [patch 00/10] Slab defragmentation V2 Christoph Lameter
2007-05-18 18:54 ` Michal Piotrowski
2007-05-21 12:52 ` Hugh Dickins
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=20070518181040.465335396@sgi.com \
--to=clameter@sgi.com \
--cc=akpm@linux-foundation.org \
--cc=dgc@sgi.com \
--cc=hugh@veritas.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