Subject: Re: NCR Driver Problems
To: None <bwalker@musings.com, Chris_G_Demetriou@NIAGARA.NECTAR.CS.CMU.EDU>
From: Brad Walker <bwalker@musings.com>
List: current-users
Date: 02/03/1996 12:14:11
> From: Chris_G_Demetriou@NIAGARA.NECTAR.CS.CMU.EDU
> To: Brad Walker <bwalker@musings.com>
> cc: greywolf@CAPTECH.COM, bad@flatlin.ka.sub.org, current-users@netbsd.org
> Subject: Re: NCR Driver Problems 
> Date: Sat, 03 Feb 96 12:04:13 EST
> 
> > And the best way for this to be handled is really to have the
> > target driver query the host bus adapter (HBA) to determine if
> > the target supports tagged commands. If the target does then the
> > target driver should hand off as many commands as possible to the
> > HBA. At this point the HBA deals with transfer and resolution of
> > the commands.
> 
> Of course, doing this would cause serious performance, maybe software
> problems in the case where there are multiple active controllers on
> the SCSI bus.
>

No it wouldn't. All I'm saying is the target queries the HBA to
determine if it can handle the processing of tagged msgs. It it
can then the target driver hands a cmd to the HBA. Now, if the
HBA queue of cmds is full. Then it doesn't accept any more. But,
the HBA takes commands and puts it into a local queue that it
sends commands out to the SCSI bus from.

> 
> There's also the question of whether or not you _can_ find out how
> many the drive can deal with, in any way other than sending down
> infinitely many, and seeing when it no longer accepts them.
> I'm not _sure_ if you can...

The SCSI spec. is nebulous at best about this. Let me give you
some of the details first. The HBA can have at most 256 tagged cmds
outstanding per I_T_L nexus. *SCSI-3 Interlocked protocol page 31)
And the target will send MSG_REJECT if it can't handle any more.
But, it doesn't specify how to handle determining the quantity of
tags that target is capable of.

-brad w.