Mon Jul 3 18:17:01 2017 UTC ()
expand what needs to be done with error handling


(jdolecek)
diff -r1.1.2.28 -r1.1.2.29 src/sys/dev/ata/TODO.ncq

cvs diff -r1.1.2.28 -r1.1.2.29 src/sys/dev/ata/Attic/TODO.ncq (expand / switch to unified diff)

--- src/sys/dev/ata/Attic/TODO.ncq 2017/06/28 19:54:38 1.1.2.28
+++ src/sys/dev/ata/Attic/TODO.ncq 2017/07/03 18:17:01 1.1.2.29
@@ -1,23 +1,30 @@ @@ -1,23 +1,30 @@
1Bugs 1Bugs
2---- 2----
3 3
4siisata - fix all new XXX and unmergable bits 4siisata - fix all new XXX and unmergable bits
5 5
6test wd* at umass?, confirm the ata_channel kludge works 6test wd* at umass?, confirm the ata_channel kludge works
7 7
8test device error handling (currently appears to not work well, at least in NCQ case) 8test non-NCQ device error handling
 9- test retry code paths, locking
 10- channel reset on fatal errors
9 11
10do proper NCQ error recovery (currently not even really attempted) 12do proper NCQ error recovery (currently not even really attempted)
 13- if fatal error, do channel reset
 14- if tranfer error (both TFD.STS.BSY and DRQ is 0), need READ LOG EXT log
 15 page 10h to read tag which caused the error, and reset the device to idle
 16- need to cancel and restart the other active transfers in a way to not
 17 increase retry count, and not trigger drive reset
11 18
12maybe do device error handling in not-interrupt-context (maybe this should be 19maybe do device error handling in not-interrupt-context (maybe this should be
13done on a mpata branch?) 20done on a mpata branch?)
14 21
15in atastart(), restrict NCQ commands to commands for the same drive? it's 22in atastart(), restrict NCQ commands to commands for the same drive? it's
16fine for fis-based switching to have outstanding for several drives, but 23fine for fis-based switching to have outstanding for several drives, but
17not non-FIS 24not non-FIS
18 25
19Other random notes (do outside the NCQ branch): 26Other random notes (do outside the NCQ branch):
20----------------------------------------------------- 27-----------------------------------------------------
21queue is allocated regardless if there are any drives, fix?  28queue is allocated regardless if there are any drives, fix?
22 29
23change wd(4) to use dksubr 30change wd(4) to use dksubr