Subject: Re: 2.0 and >2T filesystems
To: <>
From: David Laight <david@l8s.co.uk>
List: tech-kern
Date: 11/24/2005 19:53:43
On Thu, Nov 24, 2005 at 06:12:28AM -0500, der Mouse wrote:
> > Correct, ffsv1 should supports filesystems with > 2^32 sectors
> > provided the number of fragments is below 2^32 (or maybe 2^31).
> 
> Then there exists at least one bug. :-)  "My" filesystem has 4K frags,
> which means its limit should be 16T (or maybe 8T).  It was well under
> 3T, and yet it had issues.  (FFSv1 works fine with sub-2T filesystems,
> as far as I can tell, after applying the patch mycroft created back
> when I reported the issues to the list.)
> 
> My first guess would be that the problem lies with code like
> "fsbtodb(di->di_db[x])" which, because fsbtodb is a macro and thus does
> not have the argument-promotion semantics of the function it looks
> like, needs to be something more like
> "fsbtodb((u_int64_t)di->di_db[x])" to make it 32-bit-clean.

(daddr_t) might be more correct - but that doesn't look good...

> I'm doing more tests.  But they're slow - slinging multiple terabytes
> around is - so it'll be a while before I have any results.

Since the issue is accessing sectors above 4T, maybe this can be done
by creating a filesystem with a small number of inodes, and filling it
with small files.  IIRC the data blocks are preferentially allocated
from the 'cylinder group' that contains the inode.

	David

-- 
David Laight: david@l8s.co.uk