Alan Cox wrote:Unfortunately all this stuff is quite meaningless, which was why my patch was never merged. The problem is that the 3112 generates Data FIS's of a size other than a multiple of 512 bytes. Spec-legal, but exposed firmware bugs in many early SATA drives. Early Seagate hard drives choked when the formula (sector%15)==1 was satisfied (or something along those lines). The problem with the fix is that Data FIS size is only roughly correlated to PRD segment length or DMA boundary -- the chip could decide to send out a frame even if the PRD length is < 8K. The 3112 can generate not-512b-sized FIS's at any time, not just at the end of the transfer. That leaves us with two observations: 1) Just about the only valid optimization is to ensure that only the write path must be limited to small chunks, not both read- and write-paths. Tejun had a patch to do this a long time ago, but it's an open question whether the large amount of code is worth it for a rare combination. 2) Once we identified, over time, the set of drives affected by this 3112 quirk (aka drives that didn't fully comply to SATA spec), the debugging of corruption cases largely shifted to the standard routine: update the BIOS, replace the cables/RAM/power/mainboard/slot/etc. to be certain of problem location. Jeff -
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| david | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| David Woodhouse | [PATCH 1/3] firmware: allow firmware files to be built into kernel image |
| Peter Zijlstra | [PATCH 00/23] per device dirty throttling -v8 |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Josip Rodin | bnx2_poll panicking kernel |
| Patrick McHardy | Re: [GIT]: Networking |
