1. 01 10月, 2007 7 次提交
  2. 29 9月, 2007 3 次提交
  3. 28 9月, 2007 5 次提交
  4. 27 9月, 2007 4 次提交
    • L
      Revert "x86-64: Disable local APIC timer use on AMD systems with C1E" · f7f847b0
      Linus Torvalds 提交于
      This reverts commit e66485d7, since
      Rafael Wysocki noticed that the change only works for his in -mm, not in
      mainline (and that both "noapictimer" _and_ "apicmaintimer" are broken
      on his hardware, but that's apparently not a regression, just a symptom
      of the same issue that causes the automatic apic timer disable to not
      work).
      
      It turns out that it really doesn't work correctly on x86-64, since
      x86-64 doesn't use the generic clock events for timers yet.
      
      Thanks to Rafal for testing, and here's the ugly details on x86-64 as
      per Thomas:
      
        "I just looked into the code and the logic vs.  noapictimer on SMP is
         completely broken.
      
         On i386 the noapictimer option not only disables the local APIC
         timer, it also registers the CPUs for broadcasting via IPI on SMP
         systems.
      
         The x86-64 code uses the broadcast only when the local apic timer is
         active, i.e.  "noapictimer" is not on the command line.  This defeats
         the whole purpose of "noapictimer".  It should be there to make boxen
         work, where the local APIC timer actually has a hardware problem,
         e.g.  the nx6325.
      
         The current implementation of x86_64 only fixes the ACPI c-states
         related problem where the APIC timer stops in C3(2), nothing else.
      
         On nx6325 and other AMD X2 equipped systems which have the C1E
         enabled we run into the following:
      
         PIT keeps jiffies (and the system) running, but the local APIC timer
         interrupts can get out of sync due to this C1E effect.
      
         I don't think this is a critical problem, but it is wrong
         nevertheless.
      
         I think it's safe to revert the C1E patch and postpone the fix to the
         clock events conversion."
      
      On further reflection, Thomas noted:
      
         "It's even worse than I thought on the first check:
      
          "noapictimer" on the command line of an SMP box prevents _ONLY_ the
          boot CPU apic timer from being used.  But the secondary CPU is still
          unconditionally setting up the APIC timer and uses the non
          calibrated variable calibration_result, which is of course 0, to
          setup the APIC timer.  Wreckage guaranteed."
      
      so we'll just have to wait for the x86 merge to hopefully fix this up
      for x86-64.
      Tested-and-requested-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f7f847b0
    • H
      [x86 setup] Handle case of improperly terminated E820 chain · 2efa33f8
      H. Peter Anvin 提交于
      At least one system (a Geode system with a Digital Logic BIOS) has
      been found which suddenly stops reporting the SMAP signature when
      reading the E820 memory chain.  We can't know what, exactly, broke in
      the BIOS, so if we detect this situation, declare the E820 data
      unusable and fall back to E801.
      
      Also, revert to original behavior of always probing all memory
      methods; that way all the memory information is available to the
      kernel.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      Cc: Jordan Crouse <jordan.crouse@amd.com>
      Cc: Joerg Pommnitz <pommnitz@yahoo.com>
      2efa33f8
    • J
      xen: execve's error paths don't pin the mm before unpinning · df912ea4
      Jeremy Fitzhardinge 提交于
      execve's error paths don't activate (and therefore pin) the mm before
      calling exit_mmap to free it up, so don't try to unpin unless it is
      actually pinned.  This prevents a BUG_ON from triggering.
      Signed-off-by: NJeremy Fitzhardinge <jeremy@xensource.com>
      Cc: Christian Ostheimer <osth@freesurf.ch>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      df912ea4
    • T
      x86-64: Disable local APIC timer use on AMD systems with C1E · e66485d7
      Thomas Gleixner 提交于
      commit 3556ddfa titled
      
       [PATCH] x86-64: Disable local APIC timer use on AMD systems with C1E
      
      solves a problem with AMD dual core laptops e.g. HP nx6325 (Turion 64
      X2) with C1E enabled:
      
      When both cores go into idle at the same time, then the system switches
      into C1E state, which is basically the same as C3. This stops the local
      apic timer.
      
      This was debugged right after the dyntick merge on i386 and despite the
      patch title it fixes only the 32 bit path.
      
      x86_64 is still missing this fix. It seems that mainline is not really
      affected by this issue, as the PIT is running and keeps jiffies
      incrementing, but that's just waiting for trouble.
      
      -mm suffers from this problem due to the x86_64 high resolution timer
      patches.
      
      This is a quick and dirty port of the i386 code to x86_64.
      
      I spent quite a time with Rafael to debug the -mm / hrt wreckage until
      someone pointed us to this. I really had forgotten that we debugged this
      half a year ago already.
      
      Sigh, is it just me or is there something yelling arch/x86 into my ear?
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Tested-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e66485d7
  5. 26 9月, 2007 1 次提交
  6. 25 9月, 2007 2 次提交
  7. 22 9月, 2007 4 次提交
  8. 21 9月, 2007 3 次提交
  9. 20 9月, 2007 7 次提交
  10. 19 9月, 2007 3 次提交
  11. 17 9月, 2007 1 次提交