All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Eric Sandeen <sandeen@sandeen.net>
Cc: Andreas Dilger <adilger@dilger.ca>,
	Christoph Hellwig <hch@infradead.org>,
	"linux-fsdevel@vger.kernel.org Devel"
	<linux-fsdevel@vger.kernel.org>,
	xfs@oss.sgi.com
Subject: Re: XFS status update for May 2012
Date: Tue, 19 Jun 2012 11:27:00 +1000	[thread overview]
Message-ID: <20120619012700.GH25389@dastard> (raw)
In-Reply-To: <4FDF9998.6020205@sandeen.net>

On Mon, Jun 18, 2012 at 04:11:52PM -0500, Eric Sandeen wrote:
> On 6/18/12 1:25 PM, Andreas Dilger wrote:
> > 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
> 
> well, 8k on x86_64 (not 4k) right?   But still...
> 
> Maybe it's still a partial hack but it's more generic - should we have
> IRQ stacks like x86 has?  (I think I'm right that that only exists
> on x86 / 32-bit) - is there any downside to that?

We already have irq stacks for x86-64 - the stackunwinder knows
about them so when you get a stack trace from the interrupt stack is
walks back across to the thread stack at the appropriate point...

See dump_trace() in arch/x86/kernel/dumpstack_64.c

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

WARNING: multiple messages have this Message-ID (diff)
From: Dave Chinner <david@fromorbit.com>
To: Eric Sandeen <sandeen@sandeen.net>
Cc: Andreas Dilger <adilger@dilger.ca>,
	Christoph Hellwig <hch@infradead.org>,
	"linux-fsdevel@vger.kernel.org Devel"
	<linux-fsdevel@vger.kernel.org>,
	xfs@oss.sgi.com
Subject: Re: XFS status update for May 2012
Date: Tue, 19 Jun 2012 11:27:00 +1000	[thread overview]
Message-ID: <20120619012700.GH25389@dastard> (raw)
In-Reply-To: <4FDF9998.6020205@sandeen.net>

On Mon, Jun 18, 2012 at 04:11:52PM -0500, Eric Sandeen wrote:
> On 6/18/12 1:25 PM, Andreas Dilger wrote:
> > 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
> 
> well, 8k on x86_64 (not 4k) right?   But still...
> 
> Maybe it's still a partial hack but it's more generic - should we have
> IRQ stacks like x86 has?  (I think I'm right that that only exists
> on x86 / 32-bit) - is there any downside to that?

We already have irq stacks for x86-64 - the stackunwinder knows
about them so when you get a stack trace from the interrupt stack is
walks back across to the thread stack at the appropriate point...

See dump_trace() in arch/x86/kernel/dumpstack_64.c

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

  parent reply	other threads:[~2012-06-19  1:28 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-18 12:08 XFS status update for May 2012 Christoph Hellwig
2012-06-18 12:08 ` Christoph Hellwig
2012-06-18 18:25 ` Andreas Dilger
2012-06-18 18:25   ` Andreas Dilger
2012-06-18 18:43   ` Ben Myers
2012-06-18 18:43     ` Ben Myers
2012-06-18 20:36     ` Andreas Dilger
2012-06-18 20:36       ` Andreas Dilger
2012-06-19  1:20       ` Dave Chinner
2012-06-19  1:20         ` Dave Chinner
2012-06-18 21:11   ` Eric Sandeen
2012-06-18 21:11     ` Eric Sandeen
2012-06-18 21:16     ` Eric Sandeen
2012-06-18 21:16       ` Eric Sandeen
2012-06-19  1:27     ` Dave Chinner [this message]
2012-06-19  1:27       ` Dave Chinner
2012-06-19  1:11   ` Dave Chinner
2012-06-19  1:11     ` Dave Chinner

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=20120619012700.GH25389@dastard \
    --to=david@fromorbit.com \
    --cc=adilger@dilger.ca \
    --cc=hch@infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=sandeen@sandeen.net \
    --cc=xfs@oss.sgi.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.