Messages in this thread | | | Date | Sat, 5 May 2001 12:12:58 -0600 | From | Richard Gooch <> | Subject | Re: [PATCH] SMP race in ext2 - metadata corruption. |
| |
Rogier Wolff writes: > Richard Gooch wrote: > > > > - next boot, init(8) checks the file, and if it exists, opens the root > > FS block device and reads in each block listed in the file. The > > effect is to warm the buffer cache extremely quickly. The head will > > move in one direction, grabbing data as it flys by. I expect this > > will take around 1 second > > FYI: > > Around 1992 or 1993, I rewrote Minix-fsck to do this instead of > seeking all over the place. > > Cut the total time to fsck my filesystem from around 30 to 28 > seconds. (remember the days of small filesystems?) > > That's when I decided that this was NOT an interesting project: there > was very little to be gained. > > The explanation is: A seek over a few tracks isn't much slower than a > seek over hundreds of tracks. Almost any "skip" in linear access > incurs the average 6ms rotational latency anyway.
Hm. I think the access patterns between boot-up and fsck are quite different. An fsck has to seek to a large number of tracks. During bootup, I think the number of tracks accessed is much lower, and there is probably more data locality as well. Still, only one way to be sure.
I haven't had time to look closely at this, but one thing that bothers me is how to find out what is being accessed in the first place. A C-library wrapper to intercept read(2) calls isn't any good, because a lot of stuff is memory-mapped (in particular shared libraries). Anyone have a clean way to do this?
Regards,
Richard.... Permanent: rgooch@atnf.csiro.au Current: rgooch@ras.ucalgary.ca - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |