This message is from the T13 list server.
One thing to remember about read look ahead is that a new command needing a seek stops the read ahead. No delay is imposed on the host system. Having read look ahead is not so much a hint as it is a permission to store speculative read data in the buffer. Read ahead continues to read starting at the end of read commands and ends when the buffer segment is full or a new seek is needed. The purpose of read look ahead is to avoid extra drive rev waits during sequential read commands. In the time it takes to finish one read and issue the command for the next read the drive may rotate past the start of the next sequential sector. The drive would then have to wait for a revolution time to continue the read. If read look ahead is on, data passing under the head during the host command generation overhead period is read into the buffer. That way the data is there for a sequential read and no extra rev is needed. The penalty for not having read ahead in an environment where there are some sequential reads is high, about 1 rev per subsequent sequential command. If you absolutely knew that there would be no sequential reads then turning look ahead off would free up some buffer space, which might improve performance if operation was drive buffer size constrained. Read look ahead is an important performance enhancing feature for almost all applications. Best Regards, Daniel J. Colegrove Hitachi Global Storage Technologies [EMAIL PROTECTED] (702) 614-6119 Hale Landis <[EMAIL PROTECTED]> Sent by: [EMAIL PROTECTED] 06/29/2005 01:27 PM Please respond to Hale Landis <[EMAIL PROTECTED]> To [email protected] cc Subject Re: [t13] Read Look Ahead This message is from the T13 list server. Jeff Garzik wrote: > Going in the wrong direction. Talk to the people who write OS > application software, because its they who generate the data access > patterns. Lets be real - no one knows the actual physical data access patterns. Quiz: In a typical multitasking OS with ten applications running each SEQUENTIALLY reading or writing files on the same disk drive - what is the data access pattern actually seen by the drive? > "read ahead" is a hint. Read ahead is a hint and some OS's and some I/O subsystems (s/w and h/w) pass this hint down to the lowest levels of the storage subsystem on a COMMAND BY COMMAND baises - after all it requires only ONE BIT of data in the s/w I/O command structures or in a device's R/W command parameters. > It allows the OS to hint to the device that > reading ahead is likely to be an overall win (or, if disabled, an > overall loss). If a data access pattern is largely random, involving > lots of seeks, one would be smart to disable read-ahead, BUT NOT ALL > READ CACHING. The ATA SET FEATURES commands for controlling read ahead and write cache were never intended to be used in this manner and would probably be very ineffective is used in this manner. > Users are far more likely to want to disable read-ahead, than to disable > read caching. Users? Explain please... Application program? File system? I/O driver? Hale -- ++ Hale Landis ++ www.ata-atapi.com ++
