Date: Wed, 18 Nov 2009 01:30:50 +0200 From: Alexander Motin <mav@FreeBSD.org> To: FreeBSD Stable <freebsd-stable@freebsd.org> Subject: HEADS UP: major CAM ATA MFC Message-ID: <4B03322A.2080608@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
Hi. I want to notice, that I've just merged from HEAD to 8-STABLE latest results of my last months work on CAM-based ATA implementation and CAM subsystem itself. Please contact me if you will have any problems, questions, propositions, ... What's done: - major code cleanup. Many SCSIsms in ATA code removed, or reworked for ATA specifics. Many ATA support parts reworked or newly implemented; - CAM code took some fixes and optimizations. Luckily no major changes were required yet. - NCQ support re-factored. Same as for SCSI, non-capable devices now limited by queue depth of 2, to let request sorter do it's job better. - Port Multipliers support re-factored. Is is more stable now. Devices hot-insert/remove supported. Implemented reinitialization after bus resets. - ahci(4) and siis(4) drivers took many changes, including improved timeout handling, error recovery and performance optimizations. - added basic support for PATA transport. After ata(4) drivers wrapper will be finished, it will allow to completely disable old ATA infrastructure. - camcontrol tool now reports more information about ATA devices and supports ATA Power Management. - added support for ATA devices with large sector size, declared by ATA-7 spec (only theoretically now, I haven't seen such yet) - added quirks mechanism for ATA, to allow, for example, to disable NCQ, or later DMA, for specific device model or firmware revision, - added support for DMA-incapable, and some old ATA devices; - implemented ATA error reporting. Things to be done yet: - timeouts and hard errors recovery process with Port Multipliers used can cause deadlocks if happen under heavy load. Any way it is a step forward, as previously it just was not recovering at all. - devices connected using Port Multipliers detected asynchronously, and in some cases they may not get in time for root mounting. - interface mode control possible only using loader tunables, but not with camcontrol. - NCQ is not used for devices with less tags supported then controller capable (it is quite rare). Many thanks to iXsystems Inc for supporting my work, making this all possible. Also thanks to Vitsch Electronics, Sentex Corp, lissyara.su, and many other people for hardware donations. Feedbacks are welcome as always. -- Alexander Motin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B03322A.2080608>