linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHSET 02/11] new EH framework, take 3
@ 2006-05-11 12:27 Tejun Heo
  2006-05-11 12:27 ` [PATCH 03/11] libata-eh-fw: use special reserved tag and qc for internal commands Tejun Heo
                   ` (11 more replies)
  0 siblings, 12 replies; 20+ messages in thread
From: Tejun Heo @ 2006-05-11 12:27 UTC (permalink / raw)
  To: jgarzik, alan, axboe, albertcc, forrest.zhao, efalk, linux-ide,
	htejun

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



^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2006-05-19  7:31 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-05-11 12:27 [PATCHSET 02/11] new EH framework, take 3 Tejun Heo
2006-05-11 12:27 ` [PATCH 03/11] libata-eh-fw: use special reserved tag and qc for internal commands Tejun Heo
2006-05-11 12:27 ` [PATCH 01/11] libata-eh-fw: add flags and operations for new EH Tejun Heo
2006-05-11 12:27 ` [PATCH 04/11] libata-eh-fw: update ata_qc_from_tag() to enforce normal/EH qc ownership Tejun Heo
2006-05-11 12:27 ` [PATCH 02/11] libata-eh-fw: clear SError in ata_std_postreset() Tejun Heo
2006-05-11 12:27 ` [PATCH 11/11] libata-eh-fw: update SCSI command completion path for new EH Tejun Heo
2006-05-11 12:27 ` [PATCH 09/11] libata-eh-fw: update ata_scsi_error() " Tejun Heo
2006-05-11 12:27 ` [PATCH 05/11] libata-eh-fw: implement new EH scheduling via error completion Tejun Heo
2006-05-11 12:27 ` [PATCH 08/11] libata-eh-fw: implement new EH scheduling from PIO Tejun Heo
2006-05-18 10:42   ` Albert Lee
2006-05-18 11:49     ` Tejun Heo
2006-05-19  7:31       ` Albert Lee
2006-05-11 12:27 ` [PATCH 10/11] libata-eh-fw: update ata_exec_internal() for new EH Tejun Heo
2006-05-11 12:27 ` [PATCH 07/11] libata-eh-fw: implement freeze/thaw Tejun Heo
2006-05-16 10:15   ` Albert Lee
2006-05-16 10:30     ` Tejun Heo
2006-05-16 10:43       ` Albert Lee
2006-05-16 11:17       ` Albert Lee
2006-05-11 12:27 ` [PATCH 06/11] libata-eh-fw: implement ata_port_schedule_eh() and ata_port_abort() Tejun Heo
2006-05-13 22:01 ` [PATCHSET 02/11] new EH framework, take 3 Jeff Garzik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).