On Tue, 21 Jun 2011, der Mouse wrote: > It does, however, appear to have something to do with the hardware > (personally, I suspect the disk driver); if I try it on another 4.0.1 > machine on vnd0d backed by an ordinary file, it doesn't misbehave, and > if I try it on a real disk partition on that machine (but a > non-RAW_PART partition on a wd drive, rather than sd1d), it doesn't > misbehave either.
It's most likely the controller hardware (or firmware). The driver doesn't seem at all interested in the data alignment, and I don't recall other parts of the I/O stack caring. Obviously if you use the non-raw device, the data is copied to the buffer cache before the I/O is submitted to the disk, and that operation should page align the data causing your problem to go away. To verify you should test your program against some other (preferably not emulated) disk controller. Eduardo