3.14-rc2 XFS backtrace because irqs_disabled.
Linus Torvalds
torvalds at linux-foundation.org
Sat Feb 15 16:43:03 CST 2014
On Sat, Feb 15, 2014 at 2:28 PM, Dave Jones <davej at redhat.com> 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
More information about the xfs
mailing list