Date: Thu, 11 Apr 2013 02:42:33 -0700 From: Alfred Perlstein <bright@mu.org> To: Alexander Motin <mav@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r249352 - head/sys/cam/scsi Message-ID: <51668589.2040509@mu.org> In-Reply-To: <201304110634.r3B6Yf5t049831@svn.freebsd.org> References: <201304110634.r3B6Yf5t049831@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
woohoo! -Alfred On 4/10/13 11:34 PM, Alexander Motin wrote: > Author: mav > Date: Thu Apr 11 06:34:41 2013 > New Revision: 249352 > URL: http://svnweb.freebsd.org/changeset/base/249352 > > Log: > Do not sent 120 TEST UNIT READY requests on generic NOT READY statuses. > > Some failing disks tend to return vendor-specific ASC/ASCQ codes with > NOT READY sense key. It caused extremely long recovery attempts, repeating > these 120 TURs (it takes at least 1 minute) for every I/O request. > Instead of that use default error handling, doing just few retries. > > Reviewed by: ken, gibbs > MFC after: 1 month > > Modified: > head/sys/cam/scsi/scsi_all.c > > Modified: head/sys/cam/scsi/scsi_all.c > ============================================================================== > --- head/sys/cam/scsi/scsi_all.c Thu Apr 11 04:29:45 2013 (r249351) > +++ head/sys/cam/scsi/scsi_all.c Thu Apr 11 06:34:41 2013 (r249352) > @@ -699,10 +699,7 @@ const struct sense_key_table_entry sense > { > { SSD_KEY_NO_SENSE, SS_NOP, "NO SENSE" }, > { SSD_KEY_RECOVERED_ERROR, SS_NOP|SSQ_PRINT_SENSE, "RECOVERED ERROR" }, > - { > - SSD_KEY_NOT_READY, SS_TUR|SSQ_MANY|SSQ_DECREMENT_COUNT|EBUSY, > - "NOT READY" > - }, > + { SSD_KEY_NOT_READY, SS_RDEF, "NOT READY" }, > { SSD_KEY_MEDIUM_ERROR, SS_RDEF, "MEDIUM ERROR" }, > { SSD_KEY_HARDWARE_ERROR, SS_RDEF, "HARDWARE FAILURE" }, > { SSD_KEY_ILLEGAL_REQUEST, SS_FATAL|EINVAL, "ILLEGAL REQUEST" }, > @@ -877,7 +874,7 @@ static struct asc_table_entry asc_table[ > { SST(0x03, 0x02, SS_RDEF, > "Excessive write errors") }, > /* DTLPWROMAEBKVF */ > - { SST(0x04, 0x00, SS_TUR | SSQ_MANY | SSQ_DECREMENT_COUNT | EIO, > + { SST(0x04, 0x00, SS_RDEF, > "Logical unit not ready, cause not reportable") }, > /* DTLPWROMAEBKVF */ > { SST(0x04, 0x01, SS_TUR | SSQ_MANY | SSQ_DECREMENT_COUNT | EBUSY, >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51668589.2040509>