On Thu, 2004-12-02 at 12:59 -0500, Colin Walters wrote: > On Thu, 2004-12-02 at 12:40 -0500, David Zeuthen wrote: > > > I'm almost positive it requires kernel changes to do this the right way; > > one naive idea is to have a userspace daemon, capturing what blocks are > > read when (kernel tells this daemon using the kernel events layer). This > > would run in the first three minutes on each and every boot. When the > > system is idle (and only when running on AC power!) another daemon > > rearranges blocks on the disk. What blocks to rearrange could be the > > result of a computation involving several three-minute result sets. > > Rearranging sounds complex and dangerous, since it requires deep > integration with the filesystem. The online resizing took quite a long > time to appear and that is conceptually much simpler. Why not do it on > the block device layer (without knowledge of the filesystem) and just > copy those blocks to a reserved area of the block device? Disks are > big, duplicating say 100MB for this purpose wouldn't be bad. We would > need to ensure that mkfs.ext3 would leave enough space for this though > (and probably whatever does the copying would have to make sure that the > filesystem wasn't in the way; perhaps an ext flag). > This sounds much simpler and better; for good measure, ensure that the reserved area is in the beginning of the partition as reads are generally faster on lower sectors. This article seems to suggest http://www.kernelthread.com/mac/apme/optimizations/ that Mac OS X is doing something that like although it appears to be on a file system level rather than a block level. The concept of "hot files" is interesting. Cheers, David >