[BUG?] Experimenting problems during an Arch->Mercurial repo conversion

Theodore Ts'o tytso at mit.edu
Wed Jul 27 22:21:14 CDT 2005


On Wed, Jul 27, 2005 at 08:28:54AM -0700, Matt Mackall wrote:
> On Wed, Jul 27, 2005 at 10:34:03AM +0200, Andreas Gruenbacher wrote:
> > On Wednesday 27 July 2005 03:40, Matt Mackall wrote:
> > > In general, not all filesystems support sub-second granularity.
> > > Critically, if you want it on ext3, I believe you need to reformat
> > > your drive to use 256 byte inodes rather than the default 128.
> > 
> > Most file systems, including ext3, don't have sub-second timestamps at all 
> > right now. Increasing the inode size won't help.
> 
> Ahh. I thought the nanoseconds stuff went in earlier this year.

Nope.  A patch has been floated around, but it needs some work before
it can go in:

	*) It needs to do the right thing if the extended-inode
		information doesn't have space for the nanosecond
		timestamps:
		1) If there is space in the inode, just move the
			ea-in-inode down to make space for the extra
			extended fields.
		2) If there isn't enough space in the inode, then
			create an ea block and move some or all of the
			ea-in-inodes to the ea block.
		3) If there is no space in the ea block either, run in
			circles, scream and shout.  (Since that means
			there is no way at all to record the
			nanosecond timestamp, and not recording the
			nanosecond timestamp in some inodes but not in
			others could cause make to get terminally
			confused.)
	*) We need to throttle the modtime updates so that we don't
		end up creating hundreds of inode updates for every
		single write(2) call, which will fill the journal
		quite rapidly and completely trash our write
		performance.

So the patch which Alex Thomas did was a starting point, but there's
quite a bit of work that needs to be done before we can merge it.

						- Ted


More information about the Mercurial mailing list