Swapping deadlock due to aic/scsi errors?

Don Bowman don at sandvine.com
Thu Aug 7 15:36:18 PDT 2003


> From: Dave Dolson [mailto:ddolson at sandvine.com]
 ...
> > 
> > The "lost command" is supposed to be detected by the timeout
> > handler in the ahd driver.  The timeout handler just forces
> > a bus reset which should cause the command to be returned to
> > the SCSI layer and then retried.  It's not clear to me why
> > this might not be happening, but the ahd driver was relatively
> > green in 4.7 and you may just be tripping over a known (and
> > later corrected) bug manifesting itself in an unusual way.
> 
> Are you referring to the timeout handler ahd_timeout() ?
> Are the commmands retried from ahd_reset_channel() ?
> (It looks more like they're simply aborted.)
> 
> Aside: Am I correct in believing that ahd_execute_scb() is called 
> for every command to the drive?

It appears that if we set vm.swap_async_max=64 with sysctl, that 
the problem may no longer be reproducible. The default value seems
to be 4. The system is deadlocking looking for these async buffers.

Does this make sense?



More information about the freebsd-scsi mailing list