linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHSET 03/11] new EH implementation, take 3
@ 2006-05-11 13:21 Tejun Heo
  2006-05-11 13:21 ` [PATCH 02/11] libata-eh: implement ata_ering Tejun Heo
                   ` (11 more replies)
  0 siblings, 12 replies; 48+ messages in thread
From: Tejun Heo @ 2006-05-11 13:21 UTC (permalink / raw)
  To: jgarzik, alan, axboe, albertcc, forrest.zhao, efalk, linux-ide,
	htejun

Hello,

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

This is the third take of new-EH-implementation patchset.  Changes
from the last take[L] are

* (struct ata_eh_info) ap->eh_info and (struct ata_eh_context)
  ap->eh_context are added.  ehi contains all the information other
  parts of libata needs to communicate to EH, and ehc contains all the
  context EH needs to operate.  ehi is protected by host_set lock
  while ehc is owned by EH.  ehi/ehc act as standardized communication
  channel between LLDD and EH, and inside EH itself.  This simplifies
  EH implementation.

  ehc contains a struct eh_info and, on entry to EH, ap->eh_info is
  copied into ap->eh_context and cleared.  This allows LLDD to record
  exceptions detected during EH to ap->eh_info such that no exception
  info is lost (combined with ATA_FLAG_EH_PENDING) and EH to access
  ehc all it wants without bothering about synchronization.

  Another benefit of storing EH context into ap->eh_context is that it
  can easily be extended to handle multiple links.

* Due to above change, EH code are changed a lot, but basic behavior
  and function organization isn't changed too much.  One of the most
  visible change is EH interface.  As the information can be passed
  easily via ap->eh_info, the interface got simplified.  Currently,
  the only exported interface is ata_do_eh() and it seems enough for
  all the converted drivers - ata_piix, sata_sil, ahci and sata_sil24.
  EH is still done in clearly separated stages, so exporting more
  isn't difficult if needed.

* ahci and sata_sil24 now analyzes and records errors while handling
  the error IRQ.  This is more natural way (e.g. PM errors must be
  dealt with this way) and ehi makes it much easier to do.

* Single failed qc per device assumption is removed.  Multiple or no
  failed command cases are properly handled.  Also, report format is
  improved.  In general, EH is much more mature now.

* Frozen port handling in ata_interrupt() dropped.  Jeff was against
  it and I'm not very sure.

* AHCI PIO setup interrupts for multisector PIO commands don't trigger
  spurious interrupt wnarning anymore.

* Patches are in bigger lumps.  This applies to all other patchsets
  too.

This patchset is against

  upstream (acc696d93dcf993dec123d69d599979e1456ffec)
  + [1] prep-for-new-EH patchset
  + [2] new-EH-framework patchset, take 3

--
tejun

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



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

end of thread, other threads:[~2006-05-15 18:22 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-05-11 13:21 [PATCHSET 03/11] new EH implementation, take 3 Tejun Heo
2006-05-11 13:21 ` [PATCH 02/11] libata-eh: implement ata_ering Tejun Heo
2006-05-13 22:16   ` Jeff Garzik
2006-05-13 23:36     ` Tejun Heo
2006-05-14  1:05       ` Jeff Garzik
2006-05-14  1:20         ` Tejun Heo
2006-05-14  1:32           ` Jeff Garzik
2006-05-14  1:38             ` Tejun Heo
2006-05-15 13:36             ` Alan Cox
2006-05-15 14:00               ` Tejun Heo
2006-05-15 14:25                 ` Tejun Heo
2006-05-15 14:50                   ` Alan Cox
2006-05-15 14:57                     ` Tejun Heo
2006-05-15 15:19                       ` Alan Cox
2006-05-15 15:19                         ` Tejun Heo
2006-05-15 18:22                           ` Jeff Garzik
2006-05-11 13:21 ` [PATCH 03/11] libata-eh: add per-dev ata_ering Tejun Heo
2006-05-11 13:21 ` [PATCH 04/11] libata-eh: implement ata_eh_info and ata_eh_context Tejun Heo
2006-05-11 13:21 ` [PATCH 05/11] libata-eh: implement new EH Tejun Heo
2006-05-13 22:19   ` Jeff Garzik
2006-05-11 13:21 ` [PATCH 01/11] libata-eh: add ATA and libata flags for " Tejun Heo
2006-05-13 22:15   ` Jeff Garzik
2006-05-11 13:21 ` [PATCH 06/11] libata-eh: implement BMDMA EH Tejun Heo
2006-05-13 22:21   ` Jeff Garzik
2006-05-13 23:41     ` Tejun Heo
2006-05-15 13:38       ` Alan Cox
2006-05-15 13:59         ` Tejun Heo
2006-05-15 14:43           ` Alan Cox
2006-05-11 13:21 ` [PATCH 08/11] sata_sil: convert to new EH Tejun Heo
2006-05-11 14:22   ` Alan Cox
2006-05-11 14:39     ` Tejun Heo
2006-05-11 15:46       ` Alan Cox
2006-05-11 15:45         ` Tejun Heo
2006-05-11 16:12           ` Alan Cox
2006-05-11 16:10             ` Tejun Heo
2006-05-11 17:16               ` Alan Cox
2006-05-13 22:26   ` Jeff Garzik
2006-05-13 23:43     ` Tejun Heo
2006-05-11 13:21 ` [PATCH 07/11] ata_piix: " Tejun Heo
2006-05-13 22:23   ` Jeff Garzik
2006-05-11 13:21 ` [PATCH 10/11] ahci: add PIOS interim interrupt handling Tejun Heo
2006-05-11 13:21 ` [PATCH 09/11] ahci: convert to new EH Tejun Heo
2006-05-13 10:53   ` Tejun Heo
2006-05-13 22:30   ` Jeff Garzik
2006-05-13 23:49     ` Tejun Heo
2006-05-11 13:21 ` [PATCH 11/11] sata_sil24: " Tejun Heo
2006-05-13 22:34 ` [PATCHSET 03/11] new EH implementation, take 3 Jeff Garzik
2006-05-13 23:58   ` Tejun Heo

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).