1. 25 1月, 2012 1 次提交
  2. 08 12月, 2011 5 次提交
  3. 01 11月, 2011 1 次提交
  4. 19 7月, 2011 1 次提交
  5. 19 5月, 2011 2 次提交
  6. 04 5月, 2011 2 次提交
  7. 18 4月, 2011 1 次提交
  8. 05 4月, 2011 1 次提交
  9. 21 1月, 2011 1 次提交
  10. 14 10月, 2010 1 次提交
  11. 24 8月, 2010 1 次提交
  12. 14 7月, 2010 1 次提交
  13. 08 7月, 2010 1 次提交
  14. 25 5月, 2010 1 次提交
    • S
      powerpc/kexec: Add support for FSL-BookE · b3df895a
      Sebastian Andrzej Siewior 提交于
      This adds support kexec on FSL-BookE where the MMU can not be simply
      switched off. The code borrows the initial MMU-setup code to create the
      identical mapping mapping. The only difference to the original boot code
      is the size of the mapping(s) and the executeable address.
      The kexec code maps the first 2 GiB of memory in 256 MiB steps. This
      should work also on e500v1 boxes.
      SMP support is still not available.
      
      (Kumar: Added minor change to build to ifdef CONFIG_PPC_STD_MMU_64 some
      code that was PPC64 specific)
      Signed-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      b3df895a
  15. 21 5月, 2010 4 次提交
    • M
      powerpc/kdump: Fix race in kdump shutdown · 60adec62
      Michael Neuling 提交于
      When we are crashing, the crashing/primary CPU IPIs the secondaries to
      turn off IRQs, go into real mode and wait in kexec_wait.  While this
      is happening, the primary tears down all the MMU maps.  Unfortunately
      the primary doesn't check to make sure the secondaries have entered
      real mode before doing this.
      
      On PHYP machines, the secondaries can take a long time shutting down
      the IRQ controller as RTAS calls are need.  These RTAS calls need to
      be serialised which resilts in the secondaries contending in
      lock_rtas() and hence taking a long time to shut down.
      
      We've hit this on large POWER7 machines, where some secondaries are
      still waiting in lock_rtas(), when the primary tears down the HPTEs.
      
      This patch makes sure all secondaries are in real mode before the
      primary tears down the MMU.  It uses the new kexec_state entry in the
      paca.  It times out if the secondaries don't reach real mode after
      10sec.
      Signed-off-by: NMichael Neuling <mikey@neuling.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      60adec62
    • A
      powerpc/kdump: Use chip->shutdown to disable IRQs · 5d7a8721
      Anton Blanchard 提交于
      I saw this in a kdump kernel:
      
      IOMMU table initialized, virtual merging enabled
      Interrupt 155954 (real) is invalid, disabling it.
      Interrupt 155953 (real) is invalid, disabling it.
      
      ie we took some spurious interrupts. default_machine_crash_shutdown tries
      to disable all interrupt sources but uses chip->disable which maps to
      the default action of:
      
      static void default_disable(unsigned int irq)
      {
      }
      
      If we use chip->shutdown, then we actually mask the IRQ:
      
      static void default_shutdown(unsigned int irq)
      {
              struct irq_desc *desc = irq_to_desc(irq);
      
              desc->chip->mask(irq);
              desc->status |= IRQ_MASKED;
      }
      
      Not sure why we don't implement a ->disable action for xics.c, or why
      default_disable doesn't mask the interrupt.
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      5d7a8721
    • A
      powerpc/kdump: CPUs assume the context of the oopsing CPU · 06440794
      Anton Blanchard 提交于
      We wrap the crash_shutdown_handles[] calls with longjmp/setjmp, so if any
      of them fault we can recover. The problem is we add a hook to the debugger
      fault handler hook which calls longjmp unconditionally.
      
      This first part of kdump is run before we marshall the other CPUs, so there
      is a very good chance some CPU on the box is going to page fault. And when
      it does it hits the longjmp code and assumes the context of the oopsing CPU.
      The machine gets very confused when it has 10 CPUs all with the same stack,
      all thinking they have the same CPU id. I get even more confused trying
      to debug it.
      
      The patch below adds crash_shutdown_cpu and uses it to specify which cpu is
      in the protected region. Since it can only be -1 or the oopsing CPU, we don't
      need to use memory barriers since it is only valid on the local CPU - no other
      CPU will ever see a value that matches it's local CPU id.
      
      Eventually we should switch the order and marshall all CPUs before doing the
      crash_shutdown_handles[] calls, but that is a bigger fix.
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      06440794
    • M
  16. 30 10月, 2009 1 次提交
  17. 30 6月, 2008 1 次提交
  18. 14 2月, 2008 1 次提交
  19. 25 1月, 2008 1 次提交
    • M
      [POWERPC] kdump shutdown hook support · 496b010e
      Michael Neuling 提交于
      This adds hooks into the default_machine_crash_shutdown so drivers can
      register a function to be run in the first kernel before we hand off
      to the second kernel.  This should only be used in exceptional
      circumstances, like where the device can't be reset in the second
      kernel alone (as is the case with eHEA).  To emphasize this, the
      number of handles allowed to be registered is currently #def to 1.
      
      This uses the setjmp/longjmp code around the call out to the
      registered hooks, so any bogus exceptions we encounter will hopefully
      be recoverable.
      
      Tested with bogus data and instruction exceptions.
      Signed-off-by: NMichael Neuling <mikey@neuling.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      496b010e
  20. 17 8月, 2007 1 次提交
  21. 21 7月, 2007 1 次提交
  22. 08 12月, 2006 1 次提交
    • M
      [PATCH] Kexec / Kdump: Unify elf note code · 85916f81
      Magnus Damm 提交于
      The elf note saving code is currently duplicated over several
      architectures.  This cleanup patch simply adds code to a common file and
      then replaces the arch-specific code with calls to the newly added code.
      
      The only drawback with this approach is that s390 doesn't fully support
      kexec-on-panic which for that arch leads to introduction of unused code.
      Signed-off-by: NMagnus Damm <magnus@valinux.co.jp>
      Cc: Vivek Goyal <vgoyal@in.ibm.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      85916f81
  23. 16 10月, 2006 1 次提交
    • P
      [POWERPC] Lazy interrupt disabling for 64-bit machines · d04c56f7
      Paul Mackerras 提交于
      This implements a lazy strategy for disabling interrupts.  This means
      that local_irq_disable() et al. just clear the 'interrupts are
      enabled' flag in the paca.  If an interrupt comes along, the interrupt
      entry code notices that interrupts are supposed to be disabled, and
      clears the EE bit in SRR1, clears the 'interrupts are hard-enabled'
      flag in the paca, and returns.  This means that interrupts only
      actually get disabled in the processor when an interrupt comes along.
      
      When interrupts are enabled by local_irq_enable() et al., the code
      sets the interrupts-enabled flag in the paca, and then checks whether
      interrupts got hard-disabled.  If so, it also sets the EE bit in the
      MSR to hard-enable the interrupts.
      
      This has the potential to improve performance, and also makes it
      easier to make a kernel that can boot on iSeries and on other 64-bit
      machines, since this lazy-disable strategy is very similar to the
      soft-disable strategy that iSeries already uses.
      
      This version renames paca->proc_enabled to paca->soft_enabled, and
      changes a couple of soft-disables in the kexec code to hard-disables,
      which should fix the crash that Michael Ellerman saw.  This doesn't
      yet use a reserved CR field for the soft_enabled and hard_enabled
      flags.  This applies on top of Stephen Rothwell's patches to make it
      possible to build a combined iSeries/other kernel.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      d04c56f7
  24. 13 9月, 2006 1 次提交
  25. 17 8月, 2006 1 次提交
  26. 30 6月, 2006 2 次提交
    • I
      [PATCH] genirq: cleanup: remove irq_descp() · a8553acd
      Ingo Molnar 提交于
      Cleanup: remove irq_descp() - explicit use of irq_desc[] is shorter and more
      readable.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a8553acd
    • I
      [PATCH] genirq: rename desc->handler to desc->chip · d1bef4ed
      Ingo Molnar 提交于
      This patch-queue improves the generic IRQ layer to be truly generic, by adding
      various abstractions and features to it, without impacting existing
      functionality.
      
      While the queue can be best described as "fix and improve everything in the
      generic IRQ layer that we could think of", and thus it consists of many
      smaller features and lots of cleanups, the one feature that stands out most is
      the new 'irq chip' abstraction.
      
      The irq-chip abstraction is about describing and coding and IRQ controller
      driver by mapping its raw hardware capabilities [and quirks, if needed] in a
      straightforward way, without having to think about "IRQ flow"
      (level/edge/etc.) type of details.
      
      This stands in contrast with the current 'irq-type' model of genirq
      architectures, which 'mixes' raw hardware capabilities with 'flow' details.
      The patchset supports both types of irq controller designs at once, and
      converts i386 and x86_64 to the new irq-chip design.
      
      As a bonus side-effect of the irq-chip approach, chained interrupt controllers
      (master/slave PIC constructs, etc.) are now supported by design as well.
      
      The end result of this patchset intends to be simpler architecture-level code
      and more consolidation between architectures.
      
      We reused many bits of code and many concepts from Russell King's ARM IRQ
      layer, the merging of which was one of the motivations for this patchset.
      
      This patch:
      
      rename desc->handler to desc->chip.
      
      Originally i did not want to do this, because it's a big patch.  But having
      both "desc->handler", "desc->handle_irq" and "action->handler" caused a
      large degree of confusion and made the code appear alot less clean than it
      truly is.
      
      I have also attempted a dual approach as well by introducing a
      desc->chip alias - but that just wasnt robust enough and broke
      frequently.
      
      So lets get over with this quickly.  The conversion was done automatically
      via scripts and converts all the code in the kernel.
      
      This renaming patch is the first one amongst the patches, so that the
      remaining patches can stay flexible and can be merged and split up
      without having some big monolithic patch act as a merge barrier.
      
      [akpm@osdl.org: build fix]
      [akpm@osdl.org: another build fix]
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d1bef4ed
  27. 28 6月, 2006 1 次提交
    • D
      [POWERPC] Add the use of the firmware soft-reset-nmi to kdump. · c0ce7d08
      David Wilder 提交于
      With this patch, kdump uses the firmware soft-reset NMI for two purposes:
      1) Initiate the kdump (take a crash dump) by issuing a soft-reset.
      2) Break a CPU out of a deadlock condition that is detected during kdump
      processing.
      
      When a soft-reset is initiated each CPU will enter
      system_reset_exception() and set its corresponding bit in the global
      bit-array cpus_in_sr then call die(). When die() finds the CPU's bit set
      in cpu_in_sr crash_kexec() is called to initiate a crash dump. The first
      CPU to enter crash_kexec() is called the "crashing CPU". All other CPUs
      are "secondary CPUs". The secondary CPU's pass through to
      crash_kexec_secondary() and sleep. The crashing CPU waits for all CPUs
      to enter via soft-reset then boots the kdump kernel (see
      crash_soft_reset_check())
      
      When the system crashes due to a panic or exception, crash_kexec() is
      called by panic() or die(). The crashing CPU sends an IPI to all other
      CPUs to notify them of the pending shutdown. If a CPU is in a deadlock
      or hung state with interrupts disabled, the IPI will not be delivered.
      The result being, that the kdump kernel is not booted. This problem is
      solved with the use of a firmware generated soft-reset. After the
      crashing_cpu has issued the IPI, it waits for 10 sec for all CPUs to
      enter crash_ipi_callback(). A CPU signifies its entry to
      crash_ipi_callback() by setting its corresponding bit in the
      cpus_in_crash bit array. After 10 sec, if one or more CPUs have not set
      their bit in cpus_in_crash we assume that the CPU(s) is deadlocked. The
      operator is then prompted to generate a soft-reset to break the
      deadlock. Each CPU enters the soft reset handler as described above.
      
      Two conditions must be handled at this point:
      1) The system crashed because the operator generated a soft-reset. See
      2) The system had crashed before the soft-reset was generated ( in the
      case of a Panic or oops).
      
      The first CPU to enter crash_kexec() uses the state of the kexec_lock to
      determine this state. If kexec_lock is already held then condition 2 is
      true and crash_kexec_secondary() is called, else; this CPU is flagged as
      the crashing CPU, the kexec_lock is acquired and crash_kexec() proceeds
      as described above.
      
      Each additional CPUs responding to the soft-reset will pass through
      crash_kexec() to kexec_secondary(). All secondary CPUs call
      crash_ipi_callback() readying them self's for the shutdown. When ready
      they clear their bit in cpus_in_sr. The crashing CPU waits in
      kexec_secondary() until all other CPUs have cleared their bits in
      cpus_in_sr. The kexec kernel boot is then started.
      Signed-off-by: NHaren Myneni <haren@us.ibm.com>
      Signed-off-by: NDavid Wilder <dwilder@us.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      c0ce7d08
  28. 27 6月, 2006 1 次提交
  29. 22 4月, 2006 1 次提交
  30. 24 2月, 2006 1 次提交