public inbox for linux-ext4@vger.kernel.org
 help / color / mirror / Atom feed
From: Mingming Cao <cmm@us.ibm.com>
To: Andreas Dilger <adilger@clusterfs.com>
Cc: linux-ext4@vger.kernel.org
Subject: Re: Missing JBD2_FEATURE_INCOMPAT_64BIT in ext4
Date: Thu, 19 Apr 2007 17:41:43 -0700	[thread overview]
Message-ID: <1177029704.6703.46.camel@dyn9047017103.beaverton.ibm.com> (raw)
In-Reply-To: <20070419211817.GO5967@schatzie.adilger.int>

On Thu, 2007-04-19 at 15:18 -0600, Andreas Dilger wrote:
> On Apr 19, 2007  12:15 -0700, Mingming Cao wrote:
> > On Sun, 2007-04-15 at 10:16 -0600, Andreas Dilger wrote:
> > > Just a quick note before I forget.  I thought there was a call in ext4
> > > to set JBD2_FEATURE_INCOMPAT_64BIT at mount time if the filesystem has
> > > more than 2^32 blocks?
> > 
> > Question about the online resize case. If the fs is increased to more
> > than 2^32 blocks, we should set this JBD2_FEATURE_INCOMPAT_64BIT in the
> > journal. What about existing transactions that still stores 32 bit block
> > numbers?  I guess the journal need to commit them all so that revoke
> > will not get confused about the bits for block numbers later.  After
> > that done then JBD2 can set this feature safely.
> 
> Well, there are two options here:
> 1) refuse resizing filesystems beyond 16TB
>    - this is required if they were not formatted as ext4 to start with, as
>      the group descriptors will not be large enough to handle the "_hi"
>      word in the bitmap/inode table locations
>    - this is also a problem for block-mapped files that need to allocate
>      blocks beyond 16TB (though this could just fail on those files with
>      e.g. ENOSPC or EFBIG or something similar)

I agree for fs not formatted as ext4(block-map based ext3 but mounted as
ext4), resize fs to >16TB is not possible

This concern is mostly for new formated ext4, which by default is
extents based. 


> 2) flush the journal (like ext4_write_super_lockfs()) while resizing beyond
>    16TB.  

Ah. thanks for point this out.

> This would also require changing over to META_BG at some point,
>    because there cannot be enough reserved group descriptor blocks (the
>    resize_inode is set up for a maximum of 2TB filesystems I think)
>    

Any concerns about turn on META_BG by default for all new ext4 fs?
Initially I thought we only need META_BG for support >256TB, so there is
no rush to turn it on for all the new fs. But it appears there are
multiple benefits to enable META_BG by default:

- enable online resize >2TB
- support >256TB fs 
- Since metadatas(bitmaps, group descriptors etc) are not put at the
beginning of each block group anymore, the 128MB limit(block group size
with 4k block size) that used to limit an extent size is removed. 
- Speed up fsck since metadata are placed closely. 

So I am wondering why not make it default?

Mingming

  reply	other threads:[~2007-04-20  0:41 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-15 16:16 Missing JBD2_FEATURE_INCOMPAT_64BIT in ext4 Andreas Dilger
2007-04-19 19:15 ` Mingming Cao
2007-04-19 21:18   ` Andreas Dilger
2007-04-20  0:41     ` Mingming Cao [this message]
2007-04-20  5:03       ` Andreas Dilger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1177029704.6703.46.camel@dyn9047017103.beaverton.ibm.com \
    --to=cmm@us.ibm.com \
    --cc=adilger@clusterfs.com \
    --cc=linux-ext4@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox