1. 11 5月, 2007 1 次提交
  2. 09 5月, 2007 2 次提交
  3. 03 5月, 2007 2 次提交
  4. 04 1月, 2007 1 次提交
  5. 16 12月, 2006 1 次提交
    • L
      Remove stack unwinder for now · d1526e2c
      Linus Torvalds 提交于
      It has caused more problems than it ever really solved, and is
      apparently not getting cleaned up and fixed.  We can put it back when
      it's stable and isn't likely to make warning or bug events worse.
      
      In the meantime, enable frame pointers for more readable stack traces.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d1526e2c
  6. 09 12月, 2006 1 次提交
    • J
      [PATCH] Generic BUG for x86-64 · c31a0bf3
      Jeremy Fitzhardinge 提交于
      This makes x86-64 use the generic BUG machinery.
      
      The main advantage in using the generic BUG machinery for x86-64 is that
      the inlined overhead of BUG is just the ud2a instruction; the file+line
      information are no longer inlined into the instruction stream.  This
      reduces cache pollution.
      Signed-off-by: NJeremy Fitzhardinge <jeremy@goop.org>
      Cc: Andi Kleen <ak@muc.de>
      Cc: Hugh Dickens <hugh@veritas.com>
      Cc: Michael Ellerman <michael@ellerman.id.au>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      c31a0bf3
  7. 07 12月, 2006 9 次提交
  8. 29 11月, 2006 1 次提交
  9. 18 11月, 2006 1 次提交
    • I
      [PATCH] x86_64: stack unwinder crash fix · 0796bdb7
      Ingo Molnar 提交于
      the new dwarf2 unwinder crashes while trying to dump the stack:
      
        Leftover inexact backtrace:
      
        Unable to handle kernel paging request at ffffffff82800000 RIP:
         [<ffffffff8026cf26>] dump_trace+0x35b/0x3d2
        PGD 203027 PUD 205027 PMD 0
        Oops: 0000 [2] PREEMPT SMP
        CPU 0
        Modules linked in:
        Pid: 30, comm: khelper Not tainted 2.6.19-rc6-rt1 #11
        RIP: 0010:[<ffffffff8026cf26>]  [<ffffffff8026cf26>] dump_trace+0x35b/0x3d2
        RSP: 0000:ffff81003fb9d848  EFLAGS: 00010006
        RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
        RDX: 0000000000000000 RSI: ffffffff805b3520 RDI: 0000000000000000
        RBP: ffffffff827ffff9 R08: ffffffff80aad000 R09: 0000000000000005
        R10: ffffffff80aae000 R11: ffffffff8037961b R12: ffff81003fb9d858
        R13: 0000000000000000 R14: ffffffff80598460 R15: ffffffff80ab1fc0
        FS:  0000000000000000(0000) GS:ffffffff806c4200(0000) knlGS:0000000000000000
        CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
        CR2: ffffffff82800000 CR3: 0000000000201000 CR4: 00000000000006e0
      
      this crash happened because it did not sanitize the dwarf2 data it
      got, and got an unaligned stack pointer - which happily walked past
      the process stack (and eventually reached the end of kernel memory
      and pagefaulted there) due to this naive iteration condition:
      
              HANDLE_STACK (((long) stack & (THREAD_SIZE-1)) != 0);
      
      note that i386 is alot more conservative when it comes to trusting
      stack pointers:
      
        static inline int valid_stack_ptr(struct thread_info *tinfo, void *p)
        {
               return  p > (void *)tinfo &&
                       p < (void *)tinfo + THREAD_SIZE - 3;
        }
      
      but the x86_64 code did not take this bit of i386 code.
      
      The fix is to align the stack pointer.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Jan Beulich <jbeulich@novell.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Andrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      0796bdb7
  10. 06 10月, 2006 1 次提交
  11. 26 9月, 2006 13 次提交
    • A
      [PATCH] Don't use kernel_text_address in oops context · e8c7391d
      Andi Kleen 提交于
      Because it can take spinlocks.
      
      Suggested by Mathieu Desnoyers
      
      Cc: Mathieu Desnoyers <compudj@krystal.dyndns.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      e8c7391d
    • K
      [PATCH] Remove most of the special cases for the debug IST stack · f5741644
      Keith Owens 提交于
      Remove most of the special cases for the debug IST stack.  This is a
      follow on clean up patch, it requires the bug fix patch that adds
      orig_ist.
      Signed-off-by: NKeith Owens <kaos@ocs.com.au>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      f5741644
    • A
      [PATCH] Remove safe_smp_processor_id() · 151f8cc1
      Andi Kleen 提交于
      And replace all users with ordinary smp_processor_id.  The function
      was originally added to get some basic oops information out even
      if the GS register was corrupted. However that didn't
      work for some anymore because printk is needed to print the oops
      and it uses smp_processor_id() already. Also GS register corruptions
      are not particularly common anymore.
      
      This also helps the Xen port which would otherwise need to
      do this in a special way because it can't access the local APIC.
      
      Cc: Chris Wright <chrisw@sous-sol.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      151f8cc1
    • A
      [PATCH] wire up oops_enter()/oops_exit() · abf0f109
      Andrew Morton 提交于
      Implement pause_on_oops() on x86_64.
      
      AK: I redid the patch to do the oops_enter/exit in the existing
      oops_begin()/end(). This makes it much shorter.
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      abf0f109
    • A
      [PATCH] non lazy "sleazy" fpu implementation · e07e23e1
      Arjan van de Ven 提交于
      Right now the kernel on x86-64 has a 100% lazy fpu behavior: after *every*
      context switch a trap is taken for the first FPU use to restore the FPU
      context lazily.  This is of course great for applications that have very
      sporadic or no FPU use (since then you avoid doing the expensive
      save/restore all the time).  However for very frequent FPU users...  you
      take an extra trap every context switch.
      
      The patch below adds a simple heuristic to this code: After 5 consecutive
      context switches of FPU use, the lazy behavior is disabled and the context
      gets restored every context switch.  If the app indeed uses the FPU, the
      trap is avoided.  (the chance of the 6th time slice using FPU after the
      previous 5 having done so are quite high obviously).
      
      After 256 switches, this is reset and lazy behavior is returned (until
      there are 5 consecutive ones again).  The reason for this is to give apps
      that do longer bursts of FPU use still the lazy behavior back after some
      time.
      
      [akpm@osdl.org: place new task_struct field next to jit_keyring to save space]
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: Andi Kleen <ak@muc.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      e07e23e1
    • A
      [PATCH] Check for end of stack trace before falling back · be7a9170
      Andi Kleen 提交于
      Signed-off-by: NAndi Kleen <ak@suse.de>
      be7a9170
    • A
      [PATCH] Merge stacktrace and show_trace · c0b766f1
      Andi Kleen 提交于
      This unifies the standard backtracer and the new stacktrace
      in memory backtracer. The standard one is converted to use callbacks
      and then reimplement stacktrace using new callbacks.
      
      The main advantage is that stacktrace can now use the new dwarf2 unwinder
      and avoid false positives in many cases.
      
      I kept it simple to make sure the standard backtracer stays reliable.
      
      Cc: mingo@elte.hu
      Signed-off-by: NAndi Kleen <ak@suse.de>
      c0b766f1
    • A
      [PATCH] Convert x86-64 to early param · 2c8c0e6b
      Andi Kleen 提交于
      Instead of hackish manual parsing
      
      Requires earlier i386 patchkit, but also fixes i386 early_printk again.
      
      I removed some obsolete really early parameters which didn't do anything useful.
      Also made a few parameters that needed it early (mostly oops printing setup)
      
      Also removed one panic check that wasn't visible without
      early console anyways (the early console is now initialized after that
      panic)
      
      This cleans up a lot of code.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      2c8c0e6b
    • A
      [PATCH] Remove all ifdefs for local/io apic · 7f11d8a5
      Andi Kleen 提交于
      IO-APIC or local APIC can only be disabled at runtime anyways and
      Kconfig has forced these options on for a long time now.
      
      The Kconfigs are kept only now for the benefit of the shared acpi
      boot.c code.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      7f11d8a5
    • A
      [PATCH] Fix up panic messages for different NMI panics · fac58550
      Andi Kleen 提交于
      When a unknown NMI happened the panic would claim a NMI watchdog timeout.
      Also it would check the variable set by nmi_watchdog=panic and panic then.
      
      Fix up the panic message to be generic
      Unconditionally panic on unknown NMI when panic on unknown nmi is enabled.
      
      Noticed by Jan Beulich
      
      Cc: jbeulich@novell.com
      Signed-off-by: NAndi Kleen <ak@suse.de>
      fac58550
    • D
      [PATCH] x86: x86 clean up nmi panic messages · c41c5cd3
      Don Zickus 提交于
      Clean up some of the output messages on the nmi error paths to make more
      sense when they are displayed.  This is mainly a cosmetic fix and
      shouldn't impact any normal code path.
      Signed-off-by: NDon Zickus <dzickus@redhat.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      c41c5cd3
    • D
      [PATCH] x86: Allow users to force a panic on NMI · 8da5adda
      Don Zickus 提交于
      To quote Alan Cox:
      
      The default Linux behaviour on an NMI of either memory or unknown is to
      continue operation. For many environments such as scientific computing
      it is preferable that the box is taken out and the error dealt with than
      an uncorrected parity/ECC error get propogated.
      
      A small number of systems do generate NMI's for bizarre random reasons
      such as power management so the default is unchanged. In other respects
      the new proc/sys entry works like the existing panic controls already in
      that directory.
      
      This is separate to the edac support - EDAC allows supported chipsets to
      handle ECC errors well, this change allows unsupported cases to at least
      panic rather than cause problems further down the line.
      Signed-off-by: NDon Zickus <dzickus@redhat.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      8da5adda
    • D
      [PATCH] x86: Cleanup NMI interrupt path · 3adbbcce
      Don Zickus 提交于
      This patch cleans up the NMI interrupt path.  Instead of being gated by if
      the 'nmi callback' is set, the interrupt handler now calls everyone who is
      registered on the die_chain and additionally checks the nmi watchdog,
      reseting it if enabled.  This allows more subsystems to hook into the NMI if
      they need to (without being block by set_nmi_callback).
      Signed-off-by: NDon Zickus <dzickus@redhat.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      3adbbcce
  12. 31 8月, 2006 2 次提交
  13. 15 8月, 2006 1 次提交
    • H
      [PATCH] Change panic_on_oops message to "Fatal exception" · 012c437d
      Horms 提交于
      Previously the message was "Fatal exception: panic_on_oops", as introduced
      in a recent patch whith removed a somewhat dangerous call to ssleep() in
      the panic_on_oops path.  However, Paul Mackerras suggested that this was
      somewhat confusing, leadind people to believe that it was panic_on_oops
      that was the root cause of the fatal exception.  On his suggestion, this
      patch changes the message to simply "Fatal exception".  A suitable oops
      message should already have been displayed.
      Signed-off-by: NSimon Horman <horms@verge.net.au>
      Cc: Paul Mackerras <paulus@samba.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      012c437d
  14. 01 8月, 2006 1 次提交
    • H
      [PATCH] panic_on_oops: remove ssleep() · cea6a4ba
      Horms 提交于
      This patch is part of an effort to unify the panic_on_oops behaviour across
      all architectures that implement it.
      
      It was pointed out to me by Andi Kleen that if an oops has occured in
      interrupt context, then calling sleep() in the oops path will only cause a
      panic, and that it would be really better for it not to be in the path at
      all.
      
      This patch removes the ssleep() call and reworks the console message
      accordinly.  I have a slght concern that the resulting console message is
      too long, feedback welcome.
      
      For powerpc it also unifies the 32bit and 64bit behaviour.
      
      Fror x86_64, this patch only updates the console message, as ssleep() is
      already not present.
      Signed-off-by: NHorms <horms@verge.net.au>
      Acked-by: NPaul Mackerras <paulus@samba.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Andi Kleen <ak@muc.de>
      Cc: Chris Zankel <chris@zankel.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      cea6a4ba
  15. 29 7月, 2006 1 次提交
    • A
      [PATCH] x86_64: Dump leftover backtrace entries when dwarf2 unwinder got stuck · b13761ec
      Andi Kleen 提交于
      The dwarf2 unwinder currently often gets stuck because a lot
      of assembly code doesn't have proper dwarf2 annotiation yet.
      
      This currently often happens with __down. Should fix this by
      adding proper dwarf2 annotation to all inline assembly. However
      until that's done we need a quick fix for 2.6.18 to avoid
      incomplete backtraces.
      
      So when this happens dump the rest of the stack with the old unwinder
      instead of silently not dumping it. There was already a optional
      "both" mode that dumped both, but that was too ugly.
      
      I also clarified the headers for the different backtraces a bit.
      
      Also add a clear error message for missing dwarf2
      annotation that people can work on.
      
      And I removed a dead variable left over from Ingo's changes.
      
      Cc: mingo@elte.hu
      Cc: jbeulich@novell.com
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b13761ec
  16. 11 7月, 2006 1 次提交
  17. 04 7月, 2006 1 次提交