From: Jeff Garzik <jeff@garzik.org>
To: Tejun Heo <htejun@gmail.com>
Cc: Jens Axboe <jens.axboe@oracle.com>,
linux-ide@vger.kernel.org, Brian King <brking@linux.vnet.ibm.com>,
linux-scsi <linux-scsi@vger.kernel.org>
Subject: old-EH and SAS (was Re: [PATCH 2/2] block: add function for waiting for a specific free tag)
Date: Wed, 20 May 2009 15:34:53 -0400 [thread overview]
Message-ID: <4A145B5D.8020607@garzik.org> (raw)
In-Reply-To: <4A13EFBC.4010005@gmail.com>
(changing subject...)
> there won't be any race around it (the old-EH path is broken if
> invoked with commands in flight anyway, so doesn't matter). Also, as
Speaking of the old-EH... as of
67651ee5710c45ea62fae68b768d65395ccf47c2 there are no drivers/ata/*
drivers remaining that use old-EH.
old-EH now exists _entirely_ for a couple SAS drivers, and it is an ugly
hack, so I wanted to take a moment to think about SAS, SATA, and
SATA+SAS error handling.
The currently we have a few distinct phy+link configurations that EH
must deal with, and each requires its own implementation (this ignores
legacy SFF and other non-phy topologies):
1) SATA PHY. This is what libata EH handles now: direct control over
SATA PHY and link.
2) SAS+SATA PHY. Essentially a super-set of #1, this includes nested
expander configurations, direct attachment of SAS or SATA, etc. Uses
libsas.
3) SAS+SATA firmware. Not quite as "low level" as #2, does not use libsas.
Each one of these clearly should use the same code for configuring and
managing ATA devices, including per-device EH.
Move up to the link level, and things start to get ugly.
_Ideally_, libsas should take over all of link exception handling from
libata, except for the final-link PMP handling. In reality, I think we
will have to deal with libsas doing 100% of link EH including PMP
handling, and libata will continue to perform link EH w/ PMP for !libsas
hardware.
The integration of discovery is pretty poor -- you wind up with one glob
of SATA devices and another glob of SCSI devices, with two separate
EH+scan processes. Ideally libsas should tell libata to scan a single
SATA phy, and handle parallelism/exclusion in libsas for SATA+SAS
configurations.
Brian King did a new-EH conversion for ipr, some time ago. Maybe that
work could be picked up, extended to libsas, and permit removal of all
the old-EH code remaining in libata.
Maybe I should s/eng_timeout/sas_timeout/ to emphasize the current state
of code ;-)
Jeff
next prev parent reply other threads:[~2009-05-20 19:34 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-20 6:59 [PATCH 0/2] libata: switch to block layer tagging Jens Axboe
2009-05-20 7:00 ` [PATCH 1/2] libata: switch to using block layer tagging support Jens Axboe
2009-05-20 11:53 ` Tejun Heo
2009-05-20 17:10 ` Grant Grundler
2009-05-20 18:08 ` Gwendal Grignou
2009-05-20 18:50 ` James Bottomley
2009-05-20 18:58 ` Jeff Garzik
2009-05-20 19:04 ` Jeff Garzik
2009-05-20 19:42 ` Gwendal Grignou
2009-05-20 19:47 ` Jeff Garzik
2009-05-21 13:44 ` Mark Lord
2009-05-21 17:27 ` Jeff Garzik
2009-05-20 18:51 ` Jeff Garzik
2009-05-20 19:09 ` Jeff Garzik
2009-06-10 15:11 ` Jeff Garzik
2009-06-11 2:10 ` Tejun Heo
2009-05-20 7:01 ` [PATCH 2/2] block: add function for waiting for a specific free tag Jens Axboe
2009-05-20 11:55 ` Tejun Heo
2009-05-20 19:34 ` Jeff Garzik [this message]
2009-05-21 16:34 ` old-EH and SAS (was Re: [PATCH 2/2] block: add function for waiting for a specific free tag) Brian King
2009-05-20 17:28 ` [PATCH 2/2] block: add function for waiting for a specific free tag Grant Grundler
2009-05-20 7:53 ` [PATCH 0/2] libata: switch to block layer tagging Jeff Garzik
2009-05-20 7:57 ` Jens Axboe
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=4A145B5D.8020607@garzik.org \
--to=jeff@garzik.org \
--cc=brking@linux.vnet.ibm.com \
--cc=htejun@gmail.com \
--cc=jens.axboe@oracle.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-scsi@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.