1. 09 5月, 2007 1 次提交
    • C
      move die notifier handling to common code · 1eeb66a1
      Christoph Hellwig 提交于
      This patch moves the die notifier handling to common code.  Previous
      various architectures had exactly the same code for it.  Note that the new
      code is compiled unconditionally, this should be understood as an appel to
      the other architecture maintainer to implement support for it aswell (aka
      sprinkling a notify_die or two in the proper place)
      
      arm had a notifiy_die that did something totally different, I renamed it to
      arm_notify_die as part of the patch and made it static to the file it's
      declared and used at.  avr32 used to pass slightly less information through
      this interface and I brought it into line with the other architectures.
      
      [akpm@linux-foundation.org: build fix]
      [akpm@linux-foundation.org: fix vmalloc_sync_all bustage]
      [bryan.wu@analog.com: fix vmalloc_sync_all in nommu]
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Cc: <linux-arch@vger.kernel.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NBryan Wu <bryan.wu@analog.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1eeb66a1
  2. 03 5月, 2007 2 次提交
    • A
      [PATCH] x86-64: Use the 32bit wd_ops for 64bit too. · 05cb007d
      Andi Kleen 提交于
      This mainly removes a lot of code, replacing it with calls into the new 32bit
      perfctr-watchdog.c
      Signed-off-by: NAndi Kleen <ak@suse.de>
      05cb007d
    • S
      [PATCH] x86-64: x86_64 make NMI use PERFCTR1 for architectural perfmon (take 2) · 405e494d
      Stephane Eranian 提交于
      Hello,
      
      This patch against 2.6.20-git14 makes the NMI watchdog use PERFSEL1/PERFCTR1
      instead of PERFSEL0/PERFCTR0 on processors supporting Intel architectural
      perfmon, such as Intel Core 2. Although all PMU events can work on
      both counters, the Precise Event-Based Sampling (PEBS) requires that the
      event be in PERFCTR0 to work correctly (see section 18.14.4.1 in the
      IA32 SDM Vol 3b). This versions has 3 chunks compared to previous where
      we had missed on check.
      
      Changelog:
              - make the x86-64 NMI watchdog use PERFSEL1/PERFCTR1 instead of PERFSEL0/PERFCTR0
                on processors supporting the Intel architectural perfmon (e.g. Core 2 Duo).
                This allows PEBS to work when the NMI watchdog is active.
      signed-off-by: Nstephane eranian <eranian@hpl.hp.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      405e494d
  3. 16 4月, 2007 1 次提交
  4. 02 4月, 2007 2 次提交
  5. 15 3月, 2007 1 次提交
  6. 13 2月, 2007 3 次提交
    • A
      [PATCH] x86: Enable NMI watchdog for AMD Family 0x10 CPUs · 0a4599c8
      Andi Kleen 提交于
      For i386/x86-64.
      
      Straight forward -- just reuse the Family 0xf code.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      0a4599c8
    • I
      [PATCH] x86: fix laptop bootup hang in init_acpi() · 5d0e600d
      Ingo Molnar 提交于
      During kernel bootup, a new T60 laptop (CoreDuo, 32-bit) hangs about
      10%-20% of the time in acpi_init():
      
       Calling initcall 0xc055ce1a: topology_init+0x0/0x2f()
       Calling initcall 0xc055d75e: mtrr_init_finialize+0x0/0x2c()
       Calling initcall 0xc05664f3: param_sysfs_init+0x0/0x175()
       Calling initcall 0xc014cb65: pm_sysrq_init+0x0/0x17()
       Calling initcall 0xc0569f99: init_bio+0x0/0xf4()
       Calling initcall 0xc056b865: genhd_device_init+0x0/0x50()
       Calling initcall 0xc056c4bd: fbmem_init+0x0/0x87()
       Calling initcall 0xc056dd74: acpi_init+0x0/0x1ee()
      
      It's a hard hang that not even an NMI could punch through!  Frustratingly,
      adding printks or function tracing to the ACPI code made the hangs go away
      ...
      
      After some time an additional detail emerged: disabling the NMI watchdog
      made these occasional hangs go away.
      
      So i spent the better part of today trying to debug this and trying out
      various theories when i finally found the likely reason for the hang: if
      acpi_ns_initialize_devices() executes an _INI AML method and an NMI
      happens to hit that AML execution in the wrong moment, the machine would
      hang.  (my theory is that this must be some sort of chipset setup method
      doing stores to chipset mmio registers?)
      
      Unfortunately given the characteristics of the hang it was sheer
      impossible to figure out which of the numerous AML methods is impacted
      by this problem.
      
      As a workaround i wrote an interface to disable chipset-based NMIs while
      executing _INI sections - and indeed this fixed the hang.  I did a
      boot-loop of 100 separate reboots and none hung - while without the patch
      it would hang every 5-10 attempts.  Out of caution i did not touch the
      nmi_watchdog=2 case (it's not related to the chipset anyway and didnt
      hang).
      
      I implemented this for both x86_64 and i686, tested the i686 laptop both
      with nmi_watchdog=1 [which triggered the hangs] and nmi_watchdog=2, and
      tested an Athlon64 box with the 64-bit kernel as well. Everything builds
      and works with the patch applied.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Len Brown <lenb@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      5d0e600d
    • V
      [PATCH] x86-64: Handle 32 bit PerfMon Counter writes cleanly in x86_64 nmi_watchdog · 16761939
      Venkatesh Pallipadi 提交于
      P6 CPUs and Core/Core 2 CPUs which has 'architectural perf mon' feature,
      only supports write of low 32 bits in Performance Monitoring Counters.
      Bits 32..39 are sign extended based on bit 31 and bits 40..63 are reserved
      and should be zero.
      
      This patch:
      
      Change x86_64 nmi handler to handle this case cleanly.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      16761939
  7. 23 1月, 2007 1 次提交
  8. 10 12月, 2006 1 次提交
    • R
      [PATCH] x86: Fix boot hang due to nmi watchdog init code · 92715e28
      Ravikiran G Thirumalai 提交于
      2.6.19  stopped booting (or booted based on build/config) on our x86_64
      systems due to a bug introduced in 2.6.19.  check_nmi_watchdog schedules an
      IPI on all cpus to  busy wait on a flag, but fails to set the busywait
      flag if NMI functionality is disabled.  This causes the secondary cpus
      to spin in an endless loop, causing the kernel bootup to hang.
      Depending upon the build, the  busywait flag got overwritten (stack variable)
      and caused  the kernel to bootup on certain builds.  Following patch fixes
      the bug by setting the busywait flag before returning from check_nmi_watchdog.
      I guess using a stack variable is not good here as the calling function could
      potentially return while the busy wait loop is still spinning on the flag.
      
      AK: I redid the patch significantly to be cleaner
      Signed-off-by: NRavikiran Thirumalai <kiran@scalex86.org>
      Signed-off-by: NShai Fultheim <shai@scalex86.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      92715e28
  9. 07 12月, 2006 1 次提交
  10. 30 9月, 2006 1 次提交
  11. 26 9月, 2006 10 次提交
  12. 04 7月, 2006 1 次提交
  13. 01 7月, 2006 1 次提交
  14. 29 6月, 2006 1 次提交
  15. 27 6月, 2006 2 次提交
  16. 10 4月, 2006 1 次提交
  17. 26 3月, 2006 1 次提交
    • J
      [PATCH] x86_64: actively synchronize vmalloc area when registering certain callbacks · 8c914cb7
      Jan Beulich 提交于
      While the modular aspect of the respective i386 patch doesn't apply to
      x86-64 (as the top level page directory entry is shared between modules
      and the base kernel), handlers registered with register_die_notifier()
      are still under similar constraints for touching ioremap()ed or
      vmalloc()ed memory. The likelihood of this problem becoming visible is
      of course significantly lower, as the assigned virtual addresses would
      have to cross a 2**39 byte boundary. This is because the callback gets
      invoked
      (a) in the page fault path before the top level page table propagation
      gets carried out (hence a fault to propagate the top level page table
      entry/entries mapping to module's code/data would nest infinitly) and
      (b) in the NMI path, where nested faults must absolutely not happen,
      since otherwise the IRET from the nested fault re-enables NMIs,
      potentially resulting in nested NMI occurences.
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8c914cb7
  18. 23 3月, 2006 1 次提交
    • A
      [PATCH] more for_each_cpu() conversions · 394e3902
      Andrew Morton 提交于
      When we stop allocating percpu memory for not-possible CPUs we must not touch
      the percpu data for not-possible CPUs at all.  The correct way of doing this
      is to test cpu_possible() or to use for_each_cpu().
      
      This patch is a kernel-wide sweep of all instances of NR_CPUS.  I found very
      few instances of this bug, if any.  But the patch converts lots of open-coded
      test to use the preferred helper macros.
      
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: David Howells <dhowells@redhat.com>
      Acked-by: NKyle McMartin <kyle@parisc-linux.org>
      Cc: Anton Blanchard <anton@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: William Lee Irwin III <wli@holomorphy.com>
      Cc: Andi Kleen <ak@muc.de>
      Cc: Christian Zankel <chris@zankel.net>
      Cc: Philippe Elie <phil.el@wanadoo.fr>
      Cc: Nathan Scott <nathans@sgi.com>
      Cc: Jens Axboe <axboe@suse.de>
      Cc: Eric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      394e3902
  19. 18 2月, 2006 1 次提交
  20. 05 2月, 2006 1 次提交
  21. 12 1月, 2006 2 次提交
  22. 13 9月, 2005 3 次提交
  23. 08 9月, 2005 1 次提交
    • P
      [PATCH] NMI: Update NMI users of RCU to use new API · 19306059
      Paul E. McKenney 提交于
      Uses of RCU for dynamically changeable NMI handlers need to use the new
      rcu_dereference() and rcu_assign_pointer() facilities.  This change makes
      it clear that these uses are safe from a memory-barrier viewpoint, but the
      main purpose is to document exactly what operations are being protected by
      RCU.  This has been tested on x86 and x86-64, which are the only
      architectures affected by this change.
      
      Signed-off-by: <paulmck@us.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      19306059