I'll see if I can do some chaos monkey thing for wd(4) to test the error
paths.

I'm not quite sure what kind of special error recovery would be necessary
to add though. With NCQ, if there is any error, all pending commands are
cancelled by the device. There is nothing to recover by HBA. The commands
just need to be reissued after channel reset, which is done after a timeout
by wd(4). I think that eventual further error path tweaks really could be
done on HEAD already, and that it's not necessary to hold off making this
available for general public.

I'd really prefer not to stretch this relatively simple branch to too
ambitious rework, like converting ata to thread context or doing base MP
work.

I do want to test PMP though, thanks for reminder. In my opinion, once that
is confirmed working, there is no reason really to wait any further with
the merge.

Is there anything on HEAD which is useful to sync to the branch? I'm
wondering whether it's useful to sync it to ncq branch right now at all.

Jaromir

2017-06-08 10:45 GMT+02:00 Jonathan A. Kollasch <jakll...@kollasch.net>:

> On Wed, Jun 07, 2017 at 09:45:48PM +0200, Jaromír Doleček wrote:
> > Hello,
> >
> > I plan to merge the branch to HEAD very soon, likely over the weekend.
> > Eventual further fixes will be done on HEAD already, including mvsata(4)
> > restabilization, and potential switch of siisata(4) to support NCQ.
> >
> > The plan is to get this pulled up to netbsd-8 branch soon also, so that
> it
> > will be part of 8.0.
> >
> > Status:
> > - ahci(4) fully working with NCQ (confirmed with qemu, and real hw)
> > - piixide(4) continues working (no NCQ support of course) (confirmed in
> > qemu)
> > - siisata(4) continues working (without NCQ still) (confirmed with real
> hw)
> > - mvsata(4) not yet confirmed working after changes, mainly due the DMA
> not
> > really working on Marvell 88SX6042 which I have available - I have same
> > issue as kern/52126
> > - other ide/sata drivers received mechanical changes, should continue
> > working as before
> >
> > Jaromir
>
> My limited testing has shown that the device error handling paths need
> work yet.  It's unfortunately been a few weeks since I've tested things,
> so my memory isn't fresh with the details.  The general issue is that
> ata(4) is doing error handling in interrupt context, and NCQ error
> handling is straining that assumption.
>
> At this point I advise that the branch could be synced with HEAD and
> further testing done before merge.  I can not advise that this be
> pulled up to netbsd-8 before more extensive and comprehensive testing
> has been done.
>
> I've got siisata(4) NCQ stuff I should commit to the branch.
>
>         Jonathan Kollasch
>

Reply via email to