linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH Linux 2.6.12 00/09] NCQ: generic NCQ completion/error-handling
@ 2005-06-26 15:21 Tejun Heo
  2005-06-26 15:21 ` [PATCH Linux 2.6.12 01/09] NCQ: add ata_qc_complete_err() and @drv_err to functions Tejun Heo
                   ` (10 more replies)
  0 siblings, 11 replies; 26+ messages in thread
From: Tejun Heo @ 2005-06-26 15:21 UTC (permalink / raw)
  To: jgarzik, axboe, linux-ide

 Hello, Jeff.
 Hello, Jens.

 This patchset implements generic completion and error-handling for
NCQ commands.  This patchset assumes that the previous six misc
patches to NCQ are applied.

 In the original implementation, ahci driver proper handled completion
and error-handling of NCQ commands and NCQ error-handling was broken.

 * fails to finish scsi cmds (EH cannot be entered after the first
   time and erring requests never get completed or failed.)
 * doesn't reset host_failed
 * corrupts shost->eh_cmd_q

 New implementation...

 * does as much as possible in the libata-core layer.
 * unifies error and timeout paths and handles all in EH context.

 I tested EH using ASUS P5LD2 (ICH7R) and Samsung HD160JJ, and, for
me, EH is pretty solid now.  I'll post logs from my test runs in a
reply to this mail.

[ Start of patch descriptions ]

01_NCQ_add-ata_qc_complete_err.patch
	: add ata_qc_complete_err() and @drv_err to functions

	In the error path, the error register is read in the later
	stage during sense buffer construction.  However, w/ NCQ, we
	need to get the error register value from the log page and use
	it for sense buffer construction.  This patch adds
	ata_qc_complete_err() and adds @drv_err to functions in the
	error path.

02_NCQ_add-timeout-to-ata_read_log_page.patch
	: add timeout to ata_read_log_page()

	Some drives may lock up during read log page after NCQ
	failures (HD160JJ does), so we need to timeout
	ata_read_log_page().  This function adds timeout feature to
	ata_read_log_page().

03_NCQ_implement-ap_sactive.patch
	: add ap->sactive

	This patch makes libata-core layer aware of ap->sactive
	status.

04_NCQ_export-scsi_retry_command.patch
	: export scsi_retry_command

	Export scsi_retry_command

05_NCQ_add-ncq-helpers.patch
	: implement NCQ helpers

	This patch implements the following NCQ helpers to be used by
	specific drivers to implement interrupt and error handler.

	ata_ncq_complete()	: normal completion of commands
	ata_ncq_abort()		: error completion of commands
	ata_ncq_recover()	: EH recovery helper

06_NCQ_ahci-new-eh.patch
	: convert ahci to use new NCQ helpers

	This patch converts ahci to use new NCQ helpers.

07_NCQ_ahci-stop-dma-before-reset.patch
	: stop dma before reset

	AHCI 1.1 mandates stopping dma before issueing COMMRESET.  The
	original code didn't and it resulted in occasional lockup of
	the controller during EH recovery.  This patch fixes the
	problem.

08_NCQ_remove-or-unexport-unused-functions.patch
	: remove/unexport unused/unnecessary functions

	This patch removes ata_scsi_block_requests() and
	ata_scsi_unblock_requests(), and makes ata_read_log_page() and
	ata_to_sense_error() static.

09_NCQ_ahci-debug.patch
	: causes error or timeout

	This is what I've used for testing EH.  This patch contains
	codes for corrupting or skipping specific tags causing error
	conditions.  If you're curious....

[ End of patch descriptions ]

 Thanks a lot.

--
tejun


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

end of thread, other threads:[~2005-07-27  6:25 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-06-26 15:21 [PATCH Linux 2.6.12 00/09] NCQ: generic NCQ completion/error-handling Tejun Heo
2005-06-26 15:21 ` [PATCH Linux 2.6.12 01/09] NCQ: add ata_qc_complete_err() and @drv_err to functions Tejun Heo
2005-06-26 15:21 ` [PATCH Linux 2.6.12 02/09] NCQ: add timeout to ata_read_log_page() Tejun Heo
2005-06-26 15:21 ` [PATCH Linux 2.6.12 03/09] NCQ: add ap->sactive Tejun Heo
2005-06-26 15:21 ` [PATCH Linux 2.6.12 04/09] NCQ: export scsi_retry_command Tejun Heo
2005-06-26 15:21 ` [PATCH Linux 2.6.12 05/09] NCQ: implement NCQ helpers Tejun Heo
2005-06-26 15:21 ` [PATCH Linux 2.6.12 06/09] NCQ: convert ahci to use new " Tejun Heo
2005-06-26 15:21 ` [PATCH Linux 2.6.12 07/09] NCQ: stop dma before reset Tejun Heo
2005-07-26 21:12   ` Jeff Garzik
2005-07-27  6:25     ` Tejun Heo
2005-06-26 15:21 ` [PATCH Linux 2.6.12 08/09] NCQ: remove/unexport unused/unnecessary functions Tejun Heo
2005-06-26 15:21 ` [PATCH Linux 2.6.12 09/09] NCQ: causes error or timeout Tejun Heo
2005-06-26 15:34 ` test logs Tejun Heo
2005-06-27 14:33 ` [PATCH Linux 2.6.12 00/09] NCQ: generic NCQ completion/error-handling Jens Axboe
2005-06-30  7:36   ` Jens Axboe
2005-06-30 10:51     ` Tejun Heo
2005-06-30 15:26       ` Jens Axboe
2005-07-01  0:20         ` Tejun
2005-07-01  8:59           ` Jens Axboe
2005-07-04  5:53             ` Jens Axboe
2005-07-06 12:55               ` Jens Axboe
2005-07-06 13:00                 ` Jens Axboe
2005-07-06 15:11                   ` Tejun Heo
2005-07-08  8:03                   ` Jens Axboe
2005-07-08 10:27                     ` Tejun Heo
2005-07-08 13:54                       ` Jens Axboe

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