lkml.org 
[lkml]   [2008]   [May]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch 10/21] buffer heads: Support slab defrag
On Wed, May 21, 2008 at 02:25:05AM +0400, Evgeniy Polyakov wrote:
> On Wed, May 21, 2008 at 07:46:17AM +1000, David Chinner (dgc@sgi.com) wrote:
> > Oh, god no. Let's not put the inode_lock right at the top of the VM page
> > cleaning path. We don't need to modify inode state, the superblock dirty
> > lists, etc - all we need to do is write dirty pages on a given mapping in
> > a more efficient manner.
>
> I'm not advocating that, but having swap on reclaim does not hurt anyone,
> this is essentially the same, but with different underlying storage.

Sure. But my point is simply that sync_inode() is far too
heavy-weight to be used in a reclaim context. The fact that it holds
the inode_lock will interfere with normal writeback via pdflush and
that could potentially slow down writeback even more.

e.g. think of kswapd threads running on 20 nodes of a NUMA machine
all at once writing back dirty memory (yes, it happens). If we use
sync_inode() to write back dirty mappings we would then have at
least 20 CPUs serialising on the inode_lock trying to write back
pages. If we instead use a thin wrapper around ->writepages() then
they can all run in parallel through the filesystem(s), block
devices, etc rather than being serialised at the highest possible
layer....

> System
> will do that anyway sooner or later during usual writeback, which in turn
> can be a result of the same reclaim...

Cheers,

Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group


\
 
 \ /
  Last update: 2008-05-21 01:23    [W:0.153 / U:0.548 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site