[Top] [All Lists]

Re: XFS status update for May 2012

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: XFS status update for May 2012
From: Andreas Dilger <adilger@xxxxxxxxx>
Date: Mon, 18 Jun 2012 12:25:37 -0600
Cc: xfs@xxxxxxxxxxx, "linux-fsdevel@xxxxxxxxxxxxxxx Devel" <linux-fsdevel@xxxxxxxxxxxxxxx>
In-reply-to: <20120618120853.GA15480@xxxxxxxxxxxxx>
References: <20120618120853.GA15480@xxxxxxxxxxxxx>
On 2012-06-18, at 6:08 AM, Christoph Hellwig wrote:
> May saw the release of Linux 3.4, including a decent sized XFS update.
> Remarkable XFS features in Linux 3.4 include moving over all metadata
> updates to use transactions, the addition of a work queue for the
> low-level allocator code to avoid stack overflows due to extreme stack
> use in the Linux VM/VFS call chain,

This is essentially a workaround for too-small stacks in the kernel,
which we've had to do at times as well, by doing work in a separate
thread (with a new stack) and waiting for the results?  This is a
generic problem that any reasonably-complex filesystem will have when
running under memory pressure on a complex storage stack (e.g. LVM +
iSCSI), but causes unnecessary context switching.

Any thoughts on a better way to handle this, or will there continue
to be a 4kB stack limit and hack around this with repeated kmalloc
on callpaths for any struct over a few tens of bytes, implementing
memory pools all over the place, and "forking" over to other threads
to continue the stack consumption for another 4kB to work around
the small stack limit?

Cheers, Andreas

<Prev in Thread] Current Thread [Next in Thread>