All of lore.kernel.org
 help / color / mirror / Atom feed
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





  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.