LWN.net Logo

A couple of fixes?

A couple of fixes?

Posted Jul 7, 2006 14:59 UTC (Fri) by Max.Hyre (subscriber, #1054)
Parent article: The 2006 Linux Filesystems Workshop (Part II)

It seems to me that the disk controller hardware could fix two of the problems. These have to be done at the controller level, for speed and because the OS has no idea what the disk's real geometry is.

First, how about dual heads to allow read-after-write, as tapes have had since the dawn of time? That'll catch the high-flying writes, and blocks with oxide problems.

Second, for over-powered seeks, I suspect you need to get below the filesystem to the real format, the one the OS never sees. IIRC, waaay back when I was paying attention to disk details, the track had an ID actually written in it. You could check that to make sure you were in the right place.

Of course, this has a couple of drawbacks:

  • it would require the track number in each block, so you don't have to wait for the start of the track to come around before you know where you are, thus losing some capacity (but who cares?)
  • it would still add a delay of one full rotation every Nth write, where N = # blocks/track, because that's how often the first block you get is the one you want to write. Do they already have block numbers (instead of some physical position sensor, which sounds pretty squirrely to me)? If so, you've already got this problem, so it isn't a factor.
It might be worth it, depending on the frequency of overshoot (or undershoot?) errors, and how often the write load overpowers the cache's ability to hide the delays.


(Log in to post comments)

A couple of fixes?

Posted Jul 13, 2006 22:01 UTC (Thu) by dfsmith (guest, #20302) [Link]

In modern disk drives, at the innermost and outermost slider positions, the read head is +/- 10 tracks away from the write head. (Unfortunately 1-cosine!=0.)

To correct DNW (did-not-write) you would have to waste about 1.5 revs to reposition and read. (Depends on write length.)

To correct WWP (wrote-wrong-place) you have to first read all tracks where you might accidentally write, do the write, then verify the write and the other tracks.

Oddly enough, people buy preferentially on performance.

A couple of fixes?

Posted Jul 13, 2006 22:10 UTC (Thu) by dfsmith (guest, #20302) [Link]

Oops, that should be sin!=0. (The read head is a finite distance away from the write head.)

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds