linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Shaoying Xu <shaoyi@amazon.com>
To: <tytso@mit.edu>, <adilger.kernel@dilger.ca>
Cc: <linux-ext4@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<fllinden@amazon.com>, <benh@amazon.com>, <shaoyi@amazon.com>
Subject: [PATCH 0/1] ext4: fix lazy initialization next schedule time computation in more granular unit
Date: Tue, 17 Aug 2021 22:56:53 +0000	[thread overview]
Message-ID: <20210817225654.30487-1-shaoyi@amazon.com> (raw)

Description
===========
Ext4 FS has issue on the next schedule time calculation which is based on 
the time one request takes to zero out inode table. In the implementations of ext4 
lazy initialization, all time related unit is jiffy and also use the current 
value of jiffies to calculate time intervals. Around 11 years ago, data from 
Lukas that “zeroing one single group takes approx. 28ms without any load” 
however with hardware as well as software are getting much upgraded, this number 
becomes much smaller today that is even less than 1 jiffy, which makes the calculation 
of the next schedule time not accurate and it is reflected on Amazon Linux 2 in 
x86_64 and arm64 these two architectures with various HZ values (x86_64: 250, arm64: 100) 
that the sleeping time is the same in both arches which is 10 jiffies given the 
default multiplier 10, while 10 jiffies are different in these 2 arches in real time 
which leads to obvious performance degradation of this ext4lazyinit thread.

Test
====
Tested the patch in stable kernel 5.10 with FS volume 2T and 3T on EC2
x86_64 and arm64 instances. Before the fix, x86_64 instances with HZ value 
250 finished the lazy initialization in around 2.4x time less than arm64
instances with HZ value 100. After the fix, both of them finished within
approximately same time. Then changed HZ value in arm64 to 250, no obvious
difference in terms of time was observed. 

Patch
=====
Shaoying Xu (1):
  ext4: fix lazy initialization next schedule time computation in more
    granular unit

 fs/ext4/super.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

-- 
2.16.6


             reply	other threads:[~2021-08-17 22:56 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-17 22:56 Shaoying Xu [this message]
2021-08-17 22:56 ` [PATCH 1/1] ext4: fix lazy initialization next schedule time computation in more granular unit Shaoying Xu
2021-10-14  9:56   ` Jan Kara

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=20210817225654.30487-1-shaoyi@amazon.com \
    --to=shaoyi@amazon.com \
    --cc=adilger.kernel@dilger.ca \
    --cc=benh@amazon.com \
    --cc=fllinden@amazon.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tytso@mit.edu \
    /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;
as well as URLs for NNTP newsgroup(s).