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.Jaromir2017-06-08 10:45 GMT+02:00 Jonathan A. Kollasch <jakllsch%kollasch.net@localhost>:My limited testing has shown that the device error handling paths needOn 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
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