[PATCHSET 02/11] new EH framework, take 3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello, again.

This is part of patchset series described in [T].

This is the third take of new-EH-framework patchset.  This patchset
contains 11 patches.  Changes from the last take[L] are

* ata_eh_schedule_port() is replaced with ata_port_schedule_eh(),
  ata_port_abort() and ata_port_freeze().  This is cleaner and makes
  adding link level abort easier.

* abort now uses ATA_QCFLAG_FAILED to tag a qc as failed and simply
  call ata_qc_complete().  This simplifies abortion.

* ATA_EH_PENDING is set when EH is requested and cleared right before
  beginning EH.  After completing EH, if the flag is still set, EH is
  repeated.  This way no EH request is lost.  Later EH implementation
  also includes a mechanism to avoid repeating EH actions
  unnecessarily in such cases.

* ATA_DFLAG_FAILED removed.  It's replaced with ehi->dev implemented
  in the EH patchset.

* Port can be in FROZEN state after EH.  Previously, EH framework
  repeated EH automatically in such cases.  Now whether to leave the
  port frozen or not is the EH's call.  (Note that user can request
  another shot at recovery or detection with warm plug request)

* ops->thaw() added.  Reset or postreset methods now don't
  automatically thaw the port.  This change is necessary for later PM
  support where multiple resets are performed while frozen.  It also
  cleans code up a bit.

* Timedout qcs are now handled by ata_scsi_error() after EH kicks in.
  ata_scsi_timed_out() path is used only for old EH.  To transfer a
  timedout qc's ownership to EH, it's necessary to freeze the port.
  Previously, the transfer happened on timeout detection in
  ata_scsi_timed_out() forcing other active commands to get aborted.
  With this change, the transfer is done after all other commands are
  drained.

* ata_exec_internal() EH fixed/improved.  As commands can be aborted
  during PIO, PIO task needs to be flushed whether it timed out or
  not.

* Error messages from SCSI qc completion path is suppressed if new EH
  is in use.  New EH itself reports better.

This patchset is against

  upstream (acc696d93dcf993dec123d69d599979e1456ffec)
  + [1] prep-for-new-EH patchset

--
tejun

[T] http://article.gmane.org/gmane.linux.ide/9957
[L] http://article.gmane.org/gmane.linux.ide/9524
[1] http://article.gmane.org/gmane.linux.ide/9959


-
: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux