public inbox for linux-ext4@vger.kernel.org
 help / color / mirror / Atom feed
From: "Theodore Ts'o" <tytso@mit.edu>
To: Julian Sun <sunjunchao2870@gmail.com>
Cc: Ext4 Developers List <linux-ext4@vger.kernel.org>,
	Jan Kara <jack@suse.cz>
Subject: Re: Discrepancy between mkfs.ext4 man page and code on lazy_journal_init default
Date: Thu, 12 Jun 2025 19:20:03 -0230	[thread overview]
Message-ID: <20250612215003.GR784455@mit.edu> (raw)
In-Reply-To: <CAHB1NahGodp3=NovantwmhM2=faVWuuusfRPUiUZaXZt58K7Qg@mail.gmail.com>

On Thu, Jun 12, 2025 at 08:54:59PM +0800, Julian Sun wrote:
> Hi,
> 
> Recently, I observed a significant difference in the number of
> blk_mq_get_tag() calls when executing mkfs.ext4 -F -q /dev/$nvme
> versus mkfs.ext4 -F -q -E lazy_itable_init=1,lazy_journal_init=1
> /dev/$nvme. The former has over 2,000 more calls than the latter,
> which is confusing because the mkfs.ext4 man page states both features
> should be enabled by default. This implies the commands should be
> equivalent, with no I/O difference.
> 
>        lazy_journal_init[= <0 to disable, 1 to enable>]
>              If  enabled, the journal inode will not be
> fully zeroed out by mke2fs.  This speeds up file system initialization
> noticeably, but carries some small risk if the system crashes before
> the journal has been overwritten entirely one time.  If the option
> value is omitted, it defaults to 1 to enable lazy journal inode
>                               ^^^^^^^^^^^
> zeroing.

I agree that this might be a bit misleading, but what was meant was
that:

	mke2fs -E lazy_journal_init

and

	mke2fs -E lazy_journal_init=1

are identical.  The key words here is "If the option value is
omitted".


Note that there is a distinct difference between the extended option
using -E command-line option and specifying the default in
mke2fs.conf.  That is documented in the mke2fs.conf(5) man page.

So the bottom line is that it is possible to change the default of
lazy_journal_init (and lazy_itable_init, etc.) in /etc/mke2fs.conf.
So specifying exactly what the default should be is tricky, because
the system administrator could have changed what is in
/etc/mke2fs.conf.

So there is the default if there is no mention of the option in
/etc/mke2fs.conf; the default that is used if the extended option -E
lazy_itable_init=N is not specified (which is the value in
/etc/mke2fs.conf, or the default if it is not mentioned in
/etc/mke2fs.conf); and then there is the default value if "=N" is not
specified.

'm not sure what's the best way of making this more explicit, short
of doubling or tripling the paragraphs in man pages for mke2fs(8) and
mke2fs.conf(5).  Which would not be ideal....  I'm happy to receive
any suggestions for how to make things a bit more clear but hopefully
in a succint way.

Fortunately, it's super rare that users would ever need to change the
default, and most of the time, it's best not to mess with these knobs
at all....

Cheers,

						- Ted

  reply	other threads:[~2025-06-12 21:50 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-12 12:54 Discrepancy between mkfs.ext4 man page and code on lazy_journal_init default Julian Sun
2025-06-12 21:50 ` Theodore Ts'o [this message]
2025-06-13  2:31   ` Julian Sun

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=20250612215003.GR784455@mit.edu \
    --to=tytso@mit.edu \
    --cc=jack@suse.cz \
    --cc=linux-ext4@vger.kernel.org \
    --cc=sunjunchao2870@gmail.com \
    /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