linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* E2fsprogs master branch now has all 64-bit patch applied
@ 2010-06-14 13:39 Theodore Ts'o
  2010-06-14 14:41 ` Eric Sandeen
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Theodore Ts'o @ 2010-06-14 13:39 UTC (permalink / raw)
  To: linux-ext4


It's taken way too long, but I've finally finished integrating the
64-bit patches into e2fsprogs's mainline repository.  All of the
necessary patches should now be in the master branch for e2fsprogs.

The big change from before is that I replaced Val's changes for fixing
up how mke2fs picked the correct fs-type profile from mke2fs.conf with
something that I think works much better and leaves the code much
cleaner.  With this change you need to add the following to your
/etc/mke2fs.conf file if you want to enable the 64-bit feature flag
automatically for a big disk:

[fs_types]
	ext4 = {
		features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
		auto_64-bit_support = 1   # <---- add this line
		inode_size = 256
	}

Alternatively you can change the features line to include the feature
"64bit"; this will force the use of the 64-bit fields, and double the
size of the block group descriptors, even for smaller file systems that
don't require the 64-bit support.  (This was one of my problems with
Val's implementation; it forced the mke2fs.conf file to always enable
the 64-bit feature flag, which would cause backwards compatibility
issues.)  This might be a good thing to do for debugging purposes,
though, so this is an option which I left open, but the better way of
doing things is to use the auto_64-bit-support flag.

Should the default for auto_64-bit-support be on or off?  For now I've
left it to be defaulted to "off", on the theory that it might be useful
for distributions that aren't quite ready to enable 64-bit support until
we do a lot more testing.  But I may very well change this default
before 1.42 ships, on the theory that people who want to disable this
just ship an edited mke2fs.conf file.  (Users can always explicit
request 64bit support by using "mke2fs -O 64bit", of course.)  Comments
on this would be appreciated.

The other support which I've added into mke2fs.conf handling is I've
added two additional automatically selected fs-types, which work like
"floppy" and "small".  These are "big" which is automatically selected
for filesystems >= 4TB, and and "huge" which is elected for filesystems
>= 16TB.  I'm not 100% sure this will be useful, but it seemed like
it might be useful to have these.  Again, comments appreciated it; the
names and the cutoff points may change before the 1.42 release.

What are things that are still left to be done before we 64-bit support
is completely supported?  Just a few things:

* Currently the badblocks list mechanism only supports 32-bit blocks.
  This may be OK, since running "badblocks" on a really large disk is
  probably a fool's errand.  But how we handle this is an open question;
  should we just refuse "mke2fs -c" or "e2fsck -c" for really big file
  systems?  Should we deprecate the badblocks inode altogether?

* The online resizing code, which relies on using a resize inode and
  indirect blocks, will not scale to 64-bit filesystems.  We have the
  beginnings of support for the "meta_bg" style of resizing, which is
  supported by the kernel and the e2fsprogs code --- but it hasn't been
  implemented in the kernel yet.  We need to add that.

  As a related note, currently the online resizing code doesn't
  understand about flex_bg, so the filesystem layout for filesystems
  which are grown using online resizing is definitely not optimized for
  flex_bg.  This is something that we would probably want to fix at the
  same time, since it means adding a new ioctl interface between the
  kernel and the resize2fs program.

							- Ted

^ permalink raw reply	[flat|nested] 15+ messages in thread
* Re: E2fsprogs master branch now has all 64-bit patch applied
@ 2010-06-21 13:59 陳炫廷
  0 siblings, 0 replies; 15+ messages in thread
From: 陳炫廷 @ 2010-06-21 13:59 UTC (permalink / raw)
  To: linux-ext4

Hi Ted,

    Resize seems not work when the size is bigger than 16TB (offline resize).

My test machine:
x64 platform 2.6.32 kernel + this newest patch

1. <16TB ext4 enlarge to >16TB (offline)

     a. I use "8 x 2TB WD disks" and "mdadm" build linear raid
     b. then use mkfs.ext4 to make ext4 file system
     c. grow the linear raid to "10 X 2TB"
     d. finally it grow to "2.X TB" smaller than before

2. >16TB offline resize, the steps is similiar as before.
    a. I use "9 x 2TB WD disks" build linear raid
    b. mkfs.ext4 and not mount

    c. grow the linear raid to "10 X 2TB"
    d. do resize
    e. finally it grow to "2.X TB" smaller than before

*. Base on my trace, seems the "EXT4_FEATURE_INCOMPAT_64BIT"
not on when mkfs.ext4. So the new_size is wrong when do "resize",
*. When do resize,  "EXT2_FLAG_64BITS" not add to fs->flags.
So when execute "ext2fs_allocate_block_bitmap" function in resize process,
it won't go to 64bit check path.
*. And in "adjust_fs_info" function, I think should modify the following code
-       fs->desc_blocks = ext2fs_div_ceil(fs->group_desc_count,
+      fs->desc_blocks = ext2fs_div64_ceil(fs->group_desc_count,
                                           EXT2_DESC_PER_BLOCK(fs->super));

I try to on "EXT4_FEATURE_INCOMPAT_64BIT" and "EXT2_FLAG_64BITS"
when mkfs and resize.
And modify ext2fs_div_ceil code to ext2fs_div64_ceil.
It seems work something, the fs size isn't grow but also not deduce,
remain the same.

If you have any new patch, I can help to test. Thanks.

                                                                        
                  -HsuanTing
Best Regards,

^ permalink raw reply	[flat|nested] 15+ messages in thread
* Re: E2fsprogs master branch now has all 64-bit patch applied
@ 2010-06-21 17:02 Andreas Dilger
  0 siblings, 0 replies; 15+ messages in thread
From: Andreas Dilger @ 2010-06-21 17:02 UTC (permalink / raw)
  To: Theodore Ts'o; +Cc: linux-ext4@vger.kernel.org development

Sigh, it seems I was unsubscribed a while ago from linux-fsdevel and linux-ext4 for some reason.  I was CC'd on enough emails that I didn't notice it until the call today.

On 06/14/2010 09:39 AM, Theodore Ts'o wrote:
> With this change you need to add the following to your
> /etc/mke2fs.conf file if you want to enable the 64-bit feature flag automatically for a big disk:
> 
> [fs_types]
> 	ext4 = {
> 		features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
> 		auto_64-bit_support = 1   #<---- add this line

It is kind of awkward to have both underscores and hyphens in the same parameter.  What about just using "auto_64bit_support", since the feature is also called "64bit" and not "64-bit"?

Cheers, Andreas
--
Andreas Dilger
Lustre Technical Lead
Oracle Corporation Canada Inc.


^ permalink raw reply	[flat|nested] 15+ messages in thread
[parent not found: <AANLkTilD3D2QOXi1b7oXT2uFBx_vuO803HOX4JJXfWG0@mail.gmail.com>]

end of thread, other threads:[~2010-06-29 13:41 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-14 13:39 E2fsprogs master branch now has all 64-bit patch applied Theodore Ts'o
2010-06-14 14:41 ` Eric Sandeen
2010-06-14 14:46 ` Ric Wheeler
2010-06-14 20:15 ` Eric Sandeen
2010-06-14 20:26   ` Valerie Aurora
  -- strict thread matches above, loose matches on Subject: below --
2010-06-21 13:59 陳炫廷
2010-06-21 17:02 Andreas Dilger
     [not found] <AANLkTilD3D2QOXi1b7oXT2uFBx_vuO803HOX4JJXfWG0@mail.gmail.com>
2010-06-21 17:05 ` tytso
2010-06-22  9:15   ` Hsuan-Ting
2010-06-22 16:17     ` Andreas Dilger
2010-06-23  8:42       ` Hsuan-Ting
2010-06-23 11:00         ` Hsuan-Ting
2010-06-25 10:33     ` Hsuan-Ting
2010-06-25 18:23       ` Andreas Dilger
2010-06-29 13:41         ` Hsuan-Ting

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).