linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alex Zhuravlev <azhuravlev@whamcloud.com>
To: Andreas Dilger <adilger@dilger.ca>
Cc: Alex Zhuravlev <azhuravlev@whamcloud.com>,
	Ritesh Harjani <riteshh@linux.ibm.com>,
	"linux-ext4@vger.kernel.org" <linux-ext4@vger.kernel.org>
Subject: Re: [PATCH 2/2] ext4: skip non-loaded groups at cr=0/1
Date: Wed, 20 May 2020 19:59:09 +0000	[thread overview]
Message-ID: <7F6AF0FC-2E52-4FC5-9663-C8874BA7B98E@whamcloud.com> (raw)
In-Reply-To: <DDB9F79B-55A9-4667-AE03-60D575CAD77A@dilger.ca>



> On 20 May 2020, at 22:34, Andreas Dilger <adilger@dilger.ca> wrote:
> 
> On May 20, 2020, at 2:40 AM, Alex Zhuravlev <azhuravlev@whamcloud.com> wrote:
>> 
>>> On 17 May 2020, at 10:55, Andreas Dilger <adilger@dilger.ca> wrote:
>>> 
>>> The question is whether this is situation is affecting only a few inode
>>> allocations for a short time after mount, or does this persist for a long
>>> time?  I think that it _should_ be only a short time, because these other
>>> threads should all start prefetch on their preferred groups, so even if a
>>> few inodes have their blocks allocated in the "wrong" group, it shouldn't
>>> be a long term problem since the prefetched bitmaps will finish loading
>>> and allow the blocks to be allocated, or skipped if group is fragmented.
>> 
>> Yes, that’s the idea - there is a short window when buddy data is being
>> populated. And for each “cluster” (not just a single group) prefetching
>> will be initiated by allocation.
>> It’s possible that some number of inodes will get “bad” blocks right after
>> after mount.
>> If you think this is a bad scenario I can introduce couple more things:
>> 1) few times discussed prefetching thread
>> 2) let mballoc wait for the goal group to get ready - this essentials one
>>   more check in ext4_mb_good_group()
> 
> IMHO, this is an acceptable "cache warmup" behavior, not really different
> than mballoc doing limited scanning when looking for any other allocation.
> Since we already separate inode table blocks and data blocks into separate
> groups due to flex_bg, I don't think any group is "better" than another,
> so long as the allocations are avoiding worst-case fragmentation (i.e. a
> series of one-block allocations).

I tend to agree, but refreshed the patch to enable waiting for the goal group
(one more check). Extra waiting for one group during warmup should be fine, IMO.

Thanks, Alex

      reply	other threads:[~2020-05-20 19:59 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-27  4:03 [PATCH 2/2] ext4: skip non-loaded groups at cr=0/1 Alex Zhuravlev
2020-05-14 10:04 ` Ritesh Harjani
2020-05-15  8:56   ` Alex Zhuravlev
2020-05-17  7:55     ` Andreas Dilger
2020-05-20  8:40       ` Alex Zhuravlev
2020-05-20 19:34         ` Andreas Dilger
2020-05-20 19:59           ` Alex Zhuravlev [this message]

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=7F6AF0FC-2E52-4FC5-9663-C8874BA7B98E@whamcloud.com \
    --to=azhuravlev@whamcloud.com \
    --cc=adilger@dilger.ca \
    --cc=linux-ext4@vger.kernel.org \
    --cc=riteshh@linux.ibm.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;
as well as URLs for NNTP newsgroup(s).