AHA-2940 Ultra/Ultra Wide

Daniel M. Eischen deischen at iworks.InterWorks.org
Mon Sep 15 14:42:11 PDT 1997


> I've noticed mention of limiting the tagged command queue depth, on what
> I'm assuming is Linux.  Is there any way to do this in FreeBSD?

No.  It's easy enough to change the number of tags globally within
the ahc driver, but changing them on a per-device basis is not as easy.
A quick hack to ahc_done() in sys/i386/scsi/aic7xxx.c, would be to
replace the addittion to xs->sc_link->opennings with whatever you desired.

			if (ahc->scb_data->maxhscbs >= 16
			 || (ahc->flags & AHC_PAGESCBS)) {
				/* Default to 8 tags */
				xs->sc_link->opennings += 6;
			} else {
				/*
				 * Default to 4 tags on whimpy
				 * cards that don't have much SCB
				 * space and can't page.  This prevents
				 * a single device from hogging all
				 * slots.  We should really have a better
				 * way of providing fairness.
				 */
				xs->sc_link->opennings += 2;
			}

The opennings will be defaulted to 2, and when tagged queueing is
enabled, you add 6 or 2 opennings depending on how many SCBs are
available.

You could make it a little smarter and check xs->sc_link->target for
a specific SCSI ID.  What you really want is for Justin to finish
his  mid-level SCSI code rewrite and release it :-)

Dan Eischen
deischen at iworks.InterWorks.org



More information about the aic7xxx mailing list