Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Nov 1996 20:57:01 +0100 (MET)
From:      Andreas Klemm <andreas@klemm.gtn.com>
To:        "Justin T. Gibbs" <gibbs@freefall.freebsd.org>
Cc:        "Alexsandro D. F. Correia" <acorreia@marlin.com.br>, hackers@FreeBSD.org
Subject:   Re: Problems restoring Backups !!! 
Message-ID:  <Pine.BSF.3.95.961114204739.406A-100000@klemm.gtn.com>
In-Reply-To: <199611120426.UAA13829@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Justin,

I tried this patch now:

a)
options		AHC_SCBPAGING_ENABLE
options		AHC_TAGENABLE

timed out in message 0xf4
issued channel A bus reset 4 SCB's aborted SCSISIGI==0xc6
timedout in message in phase SCSISIGI==0xc6
SEQADDR==0x59
Ordered Tag queued
sd0(....) timed out .... SCSISIGI==0xc6
SEQADDR==0x5a
st0(0:4:0) abort message in message buffer
st0(0:4:0) timedout in message in phase ...

b)
options		AHC_TAGENABLE

Here trouble, too, although an SCSI BUS Reset is done.
But, if you access the tape once more doing a mt status only
DDB is called...

...
... timed out in message in phase
Bus reset Unit ...
st0(0:4:0) Unix attention  ... asc:25,0
...
...  Ordered tag sent

> Index: i386/scsi/aic7xxx.c
> ===================================================================
> RCS file: /usr/cvs/src/sys/i386/scsi/aic7xxx.c,v
> retrieving revision 1.85
> diff -c -r1.85 aic7xxx.c
> *** aic7xxx.c	1996/11/11 05:24:44	1.85
> --- aic7xxx.c	1996/11/12 04:19:04
> ***************
> *** 1206,1226 ****
>   			if (xs->error == XS_NOERROR)
>   				xs->error = XS_DRIVER_STUFFUP;
>   			break;
>   		case SCSI_BUSY:
>   			xs->error = XS_BUSY;
>   			sc_print_addr(xs->sc_link);
>   			printf("Target Busy\n");
> - 			break;
> - 		case SCSI_QUEUE_FULL:
> - 			/*
> - 			 * The upper level SCSI code will someday
> - 			 * handle this properly.
> - 			 */
> - 			printf("Queue Full\n");
> - 			/*
> - 			 * XXX requeue this unconditionally.
> - 			 */
> - 			STAILQ_INSERT_HEAD(&ahc->waiting_scbs, scb, links);
>   			break;
>   		default:
>   			sc_print_addr(xs->sc_link);
> --- 1206,1242 ----
>   			if (xs->error == XS_NOERROR)
>   				xs->error = XS_DRIVER_STUFFUP;
>   			break;
> + 		case SCSI_QUEUE_FULL:
> + 			if (scb->hscb->control & TAG_ENB) {
> + 				/*
> + 				 * The upper level SCSI code in 3.0
> + 				 * handles this properly...
> + 				 */
> + 				struct scsi_link *sc_link;
> + 
> + 				sc_link = xs->sc_link;
> + 				if (sc_link->active > 2
> + 				 && sc_link->opennings != 0) {
> + 					/* truncate the opennings */
> + 					sc_link->opennings = 0;
> + 					sc_print_addr(sc_link);
> + 					printf("Tagged openings reduced to "
> + 					       "%d\n", sc_link->active);
> + 				}
> + 				/*
> + 				 * XXX requeue this unconditionally.
> + 				 */
> + 				STAILQ_INSERT_TAIL(&ahc->waiting_scbs, scb,
> + 						   links);
> + 				break;
> + 			}
> + 			/* Else treat as if it is a BUSY condition */
> + 			scb->hscb->status = SCSI_BUSY;
> + 			/* Fall Through... */
>   		case SCSI_BUSY:
>   			xs->error = XS_BUSY;
>   			sc_print_addr(xs->sc_link);
>   			printf("Target Busy\n");
>   			break;
>   		default:
>   			sc_print_addr(xs->sc_link);
> 

andreas@klemm.gtn.com         /\/\___      Wiechers & Partner Datentechnik GmbH
   Andreas Klemm          ___/\/\/         Support Unix -- andreas.klemm@wup.de
pgp p-key  http://www-swiss.ai.mit.edu/~bal/pks-toplev.html  >>> powered by <<<
ftp://sunsite.unc.edu/pub/Linux/system/Printing/aps-491.tgz  >>>    FreeBSD <<<




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95.961114204739.406A-100000>