xfs
[Top] [All Lists]

Re: 3.14-rc2 XFS backtrace because irqs_disabled.

To: Dave Jones <davej@xxxxxxxxxx>, Dave Chinner <david@xxxxxxxxxxxxx>, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>, Al Viro <viro@xxxxxxxxxxxxxxxxxx>, Eric Sandeen <sandeen@xxxxxxxxxxx>, Linux Kernel <linux-kernel@xxxxxxxxxxxxxxx>, xfs@xxxxxxxxxxx
Subject: Re: 3.14-rc2 XFS backtrace because irqs_disabled.
From: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat, 15 Feb 2014 14:43:03 -0800
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:content-type; bh=l9OJo7ocZgKXgSc4445Lx9tND1OHGM2EL3hu31QDo24=; b=x0QxyJFUh8CXXa0R0NMgEoPGL8ULZA+KlqrzJXwD3FzObTis6+j5FLna2v1QJD/7Z1 oh2c8LsNBl9sRoR8UiYt2s095usKpYLh6EMrZgBhbQsj0k9ehedFiTFnibS5KZCg4by6 wpFcaahjg8Y0lX77mArnyttON/x67hvSxf+ByF6KIb1z7Mc0jnZpbtI4+ZZjKekANN57 bspYpwR8uD7OttuDy7HwOvPzhuHepaIovBI669gIzLPaHq26lHdS2qT2wdTJmCWKBz26 Z8dkoBxJxyQlgnA0aonOm+pTWpCpOB1nA/dwcgXEC8eL9R0xAEMfEqZomuoS+Pb2tXf3 TxUw==
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:content-type; bh=l9OJo7ocZgKXgSc4445Lx9tND1OHGM2EL3hu31QDo24=; b=edZULaW71v3yUTiv2iLR24Ul+H/+Ow4yIpS6QqBo7DlHnFrG/XkSQS34C4tj5SEbM5 tGCRvoSbDIRoDVpQ7+QUkTkFN13s2sHj6B5jg2SqVEJMrchp+GfJ7EE2mzBYPnPA4bKI /V7bsVNY3iinIJkMq+aUdRfACiQnbjhr1kUY0=
In-reply-to: <20140215222844.GA18201@xxxxxxxxxx>
References: <20140212010941.GM18016@xxxxxxxxxxxxxxxxxx> <CA+55aFwoWT-0A_KTkXMkNqOy8hc=YmouTMBgWUD_z+8qYPphjA@xxxxxxxxxxxxxx> <20140212040358.GA25327@xxxxxxxxxx> <20140212042215.GN18016@xxxxxxxxxxxxxxxxxx> <20140212054043.GB13997@dastard> <CA+55aFxy2t7bnCUc-DhhxYxsZ0+GwL9GuQXRYtE_VzqZusmB9A@xxxxxxxxxxxxxx> <20140212071829.GE13997@dastard> <20140214002427.GN13997@dastard> <20140214160123.GA28125@xxxxxxxxxx> <20140215222356.GU13997@dastard> <20140215222844.GA18201@xxxxxxxxxx>
Sender: linus971@xxxxxxxxx
On Sat, Feb 15, 2014 at 2:28 PM, Dave Jones <davej@xxxxxxxxxx> wrote:
>
> I've got a shitload of debug options enabled, which may explain it.
> Or perhaps that new STACK_PROTECTOR_STRONG stuff ?

Well, a lot of it is just the callee-saved registers. The compiler
will tend to preferentially allocate registers in the callee-trashed
registers, but if the function isn't a leaf function, any registers
that are live around a function call will have to be saved somewhere -
either explicitly around the function call, or - more likely - in
callee-saved registers that then get saved in the prologue/epilogue of
the function. And this will happen even in leaf functions when there
is enough register pressure that the callee-trashed registers aren't
sufficient (which is pretty common).

So saving 5-6 registers on the stack (in addition to any actual stack
frame) is pretty much the norm for anything but the very simplest
cases.

But yeah, I'm sure some config options make it worse.
STACK_PROTECTOR_STRONG could easily be one of those.

            Linus

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