[parisc-linux] Re: tag starvation

Grant Grundler grundler@dsl2.external.hp.com
Fri, 25 Jan 2002 22:28:33 -0700


Richard Hirst wrote:
> I used to get this a lot, until James changed the driver to only report
> the first occurance of it.  Don't remember the exact details, but iirc
> it is for info only, and non-fatal.  From the code it looks like it
> means some cmnd has been sitting in the drive unprocessed for too long,
> and the code rejects new cmds until those older ones have been processed
> or timed out.

Ah ok...does "starvation" properly described by the following scenario?

While the drive is completing IO requests as fast as it can,
*some* IO's don't complete because they never become the most
optimal one to complete. This is an inherent "unfairness"
in the normal SCSI  Queue tag. (Two other types of tags exist but
are never used by Unix OS's AFAICT: ordered, Head)

HP branded (and tested) drives are required to return a completion
for any outstanding IO within 3 seconds. ie if 8 tags are active
any given time, the drive can complete the IO's in any order until
an IO reaches this 3 second limit. The reason for the limit is
to prevent outstanding file system meta data from locking up access
to portions the file system for 30+ seconds.

> Hmm, I thought that would be a feature of a specific driver, not the
> upper layers.  53c700.c doesn't (yet) have any boot options to disable
> tags.

hmmm...could we just replace the following constant with
a MODULE_PARAM() variable?

53c700.h:#define NCR_700_MAX_TAGS               16

In the interim, I suggest reducing this until the problem
goes away for that disk.

IIRC, HPUX allows the user to set this on a per disk basis
using scsictl command.

thanks,
grant