From: Tejun Heo <htejun@gmail.com>
To: jgarzik@pobox.com, alan@lxorguk.ukuu.org.uk, axboe@suse.de,
albertcc@tw.ibm.com, forrest.zhao@intel.com, efalk@google.com,
linux-ide@vger.kernel.org, htejun@gmail.com
Subject: [PATCHSET 03/11] new EH implementation, take 3
Date: Thu, 11 May 2006 22:21:27 +0900 [thread overview]
Message-ID: <11473536873966-git-send-email-htejun@gmail.com> (raw)
In-Reply-To:
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
next reply other threads:[~2006-05-11 13:21 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-11 13:21 Tejun Heo [this message]
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 03/11] libata-eh: add per-dev ata_ering 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 01/11] libata-eh: add ATA and libata flags for new EH Tejun Heo
2006-05-13 22:15 ` Jeff Garzik
2006-05-11 13:21 ` [PATCH 05/11] libata-eh: implement " Tejun Heo
2006-05-13 22:19 ` Jeff Garzik
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 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 11/11] sata_sil24: " Tejun Heo
2006-05-11 13:21 ` [PATCH 09/11] ahci: " 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 10/11] ahci: add PIOS interim interrupt handling Tejun Heo
2006-05-13 22:34 ` [PATCHSET 03/11] new EH implementation, take 3 Jeff Garzik
2006-05-13 23:58 ` Tejun Heo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=11473536873966-git-send-email-htejun@gmail.com \
--to=htejun@gmail.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=albertcc@tw.ibm.com \
--cc=axboe@suse.de \
--cc=efalk@google.com \
--cc=forrest.zhao@intel.com \
--cc=jgarzik@pobox.com \
--cc=linux-ide@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).