tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: mpt(4) timeout recovery improvements



On Sun, Nov 24, 2013 at 12:41:12PM +0100, Edgar Fuß wrote:
> So, to partially answer myself:
> 
> > scsipi/driver interaction (is there documentation on this?)
> I had missed the comprehensive scsipi(9) man page. I guess I mis-typed
> "scsipi" when looking for it.
> 
> > First question: what's the appropriate xs->error?
> So this has been answered both by me finding that man page and by Brian.
> 
> > Second question: When repeatedly calling scsipi_done(), can it happen that 
> > scsipi tries to re-queue these requests before I return? I would then loose 
> > them when re-initializing the IOC.
> >From the man page, I guess this can be prevented by scsipi_channel_freeze()?
> 
> > Third question: Do I need to care about xs->xs_callout?
> This has also been answerd by bot Brian and me finding the man page.
> I didn't realize that mpt(4) did itself set up that callout.
> 
> > Or is returning everything to scsipi simply the wrong approach?
> Given there is XS_REQUEUE, I now think it's the right approach. But I may 
> be wrong, of course.

No, you want to use XS_REQUEUE here.
And yes, you should stop the queue processing by the IOC before handling the
queue. scsipi_channel_freeze() should allow to to prevent getting
back the commands before the IOC is ready again (when it's ready again, call
scsipi_channel_thaw()).

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index