Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Aug 1997 07:49:16 -0400 (EDT)
From:      Peter Dufault <dufault@hda.com>
To:        asami@cs.berkeley.edu (Satoshi Asami)
Cc:        scsi@freebsd.org
Subject:   Re: NOT READY
Message-ID:  <199708051149.HAA18841@hda.hda.com>
In-Reply-To: <199708050302.UAA21425@silvia.HIP.Berkeley.EDU> from Satoshi Asami at "Aug 4, 97 08:02:56 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
> +		scsi_start_unit(xs->sc_link, SCSI_ERR_OK | SCSI_SILENT);
> +		DELAY(5000000);

This is a five second busy wait and will hang the system.  You're
in a done interrupt at this point so you can't sleep.  I think a
"SCSIRET_TRANSACTION_CONTINUES" up in scsi_base could be added so
that this interrupt thread would go away without signalling any
completion and then finish up this transaction up when
the spliced in command completed.  It would take some work to do
properly and test.

Try returning without the DELAY and hope the code that retries
forever when something "is becoming ready" kicks in.  It will still
poll but at least it will stop as soon as it is ready.

-- 
Peter Dufault (dufault@hda.com)   Realtime development, Machine control,
HD Associates, Inc.               Safety critical systems, Agency approval



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199708051149.HAA18841>