1. 22 4月, 2006 1 次提交
    • L
      [PATCH] powerpc/pseries: clear PCI failure counter if no new failures · ac325acd
      Linas Vepstas 提交于
      The current PCI error recovery system keeps track of the number of PCI card
      resets, and refuses to bring a card back up if this number is too large.
      The goal of doing this was to avoid an infinite loop of resets if a card is
      obviously dead.  However, if the failures are rare, but the machine has a
      high uptime, this mechanism might still be triggered; this is too harsh.
      
      This patch will avoids this problem by decrementing the fail count after an
      hour.  Thus, as long as a pci card BSOD's less than 6 times an hour, it
      will continue to be reset indefinitely.  If it's failure rate is greater
      than that, it will be taken off-line permanently.
      
      This patch is larger than it might otherwise be because it changes
      indentation by removing a pointless while-loop.  The while loop is not
      needed, as the handler is invoked once fo each event (by schedule_work());
      the loop is leftover cruft from an earlier implementation.
      Signed-off-by: NLinas Vepstas <linas@austin.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      ac325acd
  2. 10 1月, 2006 1 次提交
  3. 09 1月, 2006 1 次提交
  4. 10 11月, 2005 1 次提交
    • L
      [PATCH] ppc64: PCI error event dispatcher · 172ca926
      Linas Vepstas 提交于
      12-eeh-event-dispatcher.patch
      
      ppc64: EEH Recovery dispatcher thread
      
      This patch adds a mechanism to create recovery threads when an
      EEH event is received.  Since an EEH freeze state may be detected
      within an interrupt context, we need to get out of the interrupt
      context before starting recovery. This dispatcher does this in
      two steps: first, it uses a workqueue to get out, and then
      lanuches a kernel thread, so that the recovery routine can
      sleep for exteded periods without upseting the keventd.
      
      A kernel thread is created with each EEH event, rather than
      having one long-running daemon started at boot time.  This is
      because it is anticipated that EEH events will be very rare
      (very very rare, ideally) and so its pointless to cluter the
      process tables with a daemon that will almost never run.
      Signed-off-by: NLinas Vepstas <linas@austin.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      172ca926