Module Name: src Committed By: jdolecek Date: Wed Jul 19 20:26:52 UTC 2017
Modified Files: src/sys/dev/ata [jdolecek-ncq]: TODO.ncq Log Message: update to note remaining work move some stuff to 'after-merge' To generate a diff of this commit: cvs rdiff -u -r1.1.2.29 -r1.1.2.30 src/sys/dev/ata/TODO.ncq Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/ata/TODO.ncq diff -u src/sys/dev/ata/TODO.ncq:1.1.2.29 src/sys/dev/ata/TODO.ncq:1.1.2.30 --- src/sys/dev/ata/TODO.ncq:1.1.2.29 Mon Jul 3 18:17:01 2017 +++ src/sys/dev/ata/TODO.ncq Wed Jul 19 20:26:52 2017 @@ -5,26 +5,24 @@ siisata - fix all new XXX and unmergable test wd* at umass?, confirm the ata_channel kludge works -test non-NCQ device error handling -- test retry code paths, locking -- channel reset on fatal errors - -do proper NCQ error recovery (currently not even really attempted) -- if fatal error, do channel reset -- if tranfer error (both TFD.STS.BSY and DRQ is 0), need READ LOG EXT log - page 10h to read tag which caused the error, and reset the device to idle -- need to cancel and restart the other active transfers in a way to not - increase retry count, and not trigger drive reset +do proper NCQ error recovery +- update mvsata to do same as ahcisata/siisata (read log ext, timeouts, et.al) +- update also ic/wdc.c, scsipi/atapi_wdc.c, ata/ata_wdc.c to not use + ch_status/ch_error/ATACH_IRQ_WAIT +- retest ATAPI -maybe do device error handling in not-interrupt-context (maybe this should be -done on a mpata branch?) - -in atastart(), restrict NCQ commands to commands for the same drive? it's -fine for fis-based switching to have outstanding for several drives, but -not non-FIS +ahcisata - use dynamic xfer in ahci_do_reset_drive() instead of hardcoding +0, which can clash on drive reset after command failure Other random notes (do outside the NCQ branch): ----------------------------------------------------- +implement support for PM FIS-based switching, remove restriction in atastart() +for hw which supports it, adjust error handling in controller drivers to handle +xfers for several different drives + +maybe do device error handling in not-interrupt-context (maybe this should be +done on a mpata branch?) + queue is allocated regardless if there are any drives, fix? change wd(4) to use dksubr