Subject: Re: bufcache cancer in -current?
To: Sean Doran <firstname.lastname@example.org>
From: Thor Lancelot Simon <email@example.com>
Date: 05/24/2000 15:54:04
On Wed, May 24, 2000 at 08:15:27PM +0200, Sean Doran wrote:
> However, the queue is full, there is still the current problem that
> there is a bad write to the affected disk; in this case the
> first one happened during "make obj" and the second happened
> during the creation of a normal file. The system wasn't happy
> at all about the bad directly; the bad file was merely corrupted.
I think there's a problem somewhere in the driver that causes it to confuse
the SCB for which an error occurs with some other SCB -- that is, effectively,
their data gets swapped. Frank and I saw this cause the driver to repeatedly
think a target was rejecting tags when actually it had rejected wide transfers
in an earlier command. But I haven't found the mechanism by which this occurs
yet (and don't have time to look too hard); I think Frank's looking.
Changing from the current policy to "do !B_ASYNC I/O with ordered tags" will
minimize "queue full" problems by periodically forcing all outstanding simple
tags to complete (ordered tags are a barrier), but that's not the whole
problem here, obviously.