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.