All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "Michel Dänzer" <michel@daenzer.net>,
	"Jakub Jelinek" <jakub@redhat.com>,
	"Dietmar Eggemann" <dietmar.eggemann@arm.com>,
	"Ingo Molnar" <mingo@redhat.com>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>
Subject: Re: Random panic in load_balance() with 3.16-rc
Date: Thu, 24 Jul 2014 20:59:38 +0200	[thread overview]
Message-ID: <20140724185938.GN3935@laptop> (raw)
In-Reply-To: <CA+55aFyJhqiPv0kQ+51=Ei-zaAO+0JszxtnEyx-Gbto3SE00xw@mail.gmail.com>

On Thu, Jul 24, 2014 at 11:47:17AM -0700, Linus Torvalds wrote:
> However, that constant spilling part just counts as "too stupid to
> live". The real bug is this:
> 
>         movq    $load_balance_mask, -136(%rbp)  #, %sfp
>         subq    $184, %rsp      #,
> 
> where gcc creates the stack frame *after* having already used it to
> save that constant *deep* below the stack frame.
> 
> The x86-64 ABI specifies a 128-byte red-zone under the stack pointer,
> and this is ok by that limit. It looks like it's illegal (136 > 128),
> but the fact is, we've had four "pushq"s to update %rsp since loading
> the frame pointer, so it's just *barely* legal with the red-zoning.
> 
> But we build the kernel with -mno-red-zone. We do *not* follow the
> x86-64 ABI wrt redzoning, because we *cannot*: interrupts while in
> kernel mode *will* use the stack without a redzone. So that
> "-mno-red-zone" is not some "optional guideline". It's a hard and
> harsh requirement for the kernel, and gcc-4.9 is a buggy piece of shit
> for ignoring it. And your bug happens becuase you happen to hit an
> interrupt _just_ in that single instruction window (or perhaps hit
> some other similar case and corrupted kernel data structures earlier).

Ooh, shiny, I so missed all that (also didn't know about red-zones
etc..).

Glad this got sorted.

  reply	other threads:[~2014-07-24 18:59 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <53C77BB8.6030804@daenzer.net>
2014-07-17  7:58 ` Random panic in load_balance() with 3.16-rc Peter Zijlstra
2014-07-18  9:29   ` Michel Dänzer
2014-07-22  6:13     ` Michel Dänzer
2014-07-23  3:53       ` Michel Dänzer
2014-07-23  4:21         ` Linus Torvalds
2014-07-23  6:49           ` Peter Zijlstra
2014-07-23  8:05             ` Michel Dänzer
2014-07-23  8:28               ` Peter Zijlstra
2014-07-23  9:25                 ` Peter Zijlstra
2014-07-23  9:31                   ` Michel Dänzer
2014-07-23  9:45                     ` Dietmar Eggemann
2014-07-23 11:11                       ` Peter Zijlstra
2014-07-23 11:30                         ` Peter Zijlstra
2014-07-23 14:24                           ` Peter Zijlstra
2014-07-23 14:38                             ` Michel Dänzer
2014-07-23 15:51                             ` Linus Torvalds
     [not found]                               ` <20140723155526.GW3935@laptop>
2014-07-23 16:54                                 ` Linus Torvalds
2014-07-23 17:03                                   ` Peter Zijlstra
2014-07-23 17:12                                     ` Linus Torvalds
2014-07-23 17:26                                       ` Linus Torvalds
2014-07-23 18:25                                         ` Peter Zijlstra
2014-07-23 18:35                                           ` Linus Torvalds
2014-07-23 18:41                                             ` Peter Zijlstra
2014-07-23 18:55                                               ` Linus Torvalds
2014-07-23 19:02                                                 ` Peter Zijlstra
2014-07-23 19:20                                                   ` Linus Torvalds
2014-07-24  1:43                                                     ` Michel Dänzer
2014-07-24 18:47                                                       ` Linus Torvalds
2014-07-24 18:59                                                         ` Peter Zijlstra [this message]
2014-07-25  1:25                                                         ` Michel Dänzer
2014-07-25  2:33                                                           ` Linus Torvalds
2014-07-25  2:50                                                             ` Nick Krause
2014-07-25  2:36                                                           ` Nick Krause
2014-07-25  3:55                                                           ` Alexei Starovoitov
2014-07-25  4:00                                                             ` Nick Krause
2014-07-25 14:02                                                             ` Steven Rostedt
2014-07-25 18:29                                                               ` Linus Torvalds
2014-07-25 19:10                                                                 ` Steven Rostedt
2014-07-25 20:01                                                                 ` Linus Torvalds
2014-07-25 20:13                                                                   ` Steven Rostedt
2014-07-25 21:25                                                                   ` Jakub Jelinek
2014-07-26 18:28                                                                 ` Linus Torvalds
2014-07-26 18:39                                                                   ` Linus Torvalds
2014-07-26 19:35                                                                     ` Markus Trippelsdorf
2014-07-26 19:55                                                                       ` Theodore Ts'o
2014-07-26 20:20                                                                         ` Markus Trippelsdorf
2014-07-26 22:08                                                                           ` Jakub Jelinek
2014-07-26 19:56                                                                       ` Linus Torvalds
2014-07-26 20:03                                                                         ` Linus Torvalds
2014-07-26 20:19                                                                         ` Markus Trippelsdorf
2014-07-26 20:39                                                                           ` Linus Torvalds
2014-07-28 12:26                                                                             ` Frank Ch. Eigler
2014-07-28 13:10                                                                               ` Theodore Ts'o
2014-07-28 14:11                                                                                 ` Frank Ch. Eigler
2014-07-28 16:45                                                                               ` Linus Torvalds
2014-07-28 17:27                                                                                 ` Alexei Starovoitov
2014-07-28 18:09                                                                                   ` Markus Trippelsdorf
2014-07-28 18:28                                                                                     ` Linus Torvalds
2014-07-28 18:41                                                                                       ` Markus Trippelsdorf
2014-07-29  8:58                                                                                     ` Jakub Jelinek
2014-07-28 19:50                                                                                   ` Theodore Ts'o
2014-07-28  3:47                                                                         ` Michel Dänzer
2014-07-28 16:48                                                                           ` Linus Torvalds
2014-07-29  2:29                                                                             ` Michel Dänzer
2014-08-05  3:19                                                                 ` Steven Rostedt
2014-07-26 18:02                                                           ` Steven Chamberlain
2014-07-29  9:20                                                             ` Michel Dänzer
2014-07-25  6:48                                                         ` Jakub Jelinek
2014-07-25  8:15                                                           ` Linus Torvalds
2014-07-25  9:03                                                             ` Michel Dänzer
2014-07-25  9:21                                                               ` Markus Trippelsdorf
2014-07-25  9:42                                                                 ` Markus Trippelsdorf
2014-07-23 18:07                                       ` Linus Torvalds
2014-07-23 18:31                                         ` Peter Zijlstra
2014-07-23 18:24                                       ` Peter Zijlstra
2014-07-23 17:04                                   ` Peter Zijlstra
2014-07-23 17:15                                     ` Linus Torvalds
2014-07-23 18:25                                       ` Peter Zijlstra
2014-07-23 18:23                                   ` Peter Zijlstra
2014-07-23 10:52                     ` Peter Zijlstra
2014-07-24  7:18                     ` Michel Dänzer
2014-07-24  7:51                       ` Peter Zijlstra
2014-07-24  9:55                         ` Peter Zijlstra

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=20140724185938.GN3935@laptop \
    --to=peterz@infradead.org \
    --cc=dietmar.eggemann@arm.com \
    --cc=jakub@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michel@daenzer.net \
    --cc=mingo@redhat.com \
    --cc=torvalds@linux-foundation.org \
    /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.