All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Theodore Y. Ts'o" <tytso@mit.edu>
To: Jan Kara <jack@suse.cz>
Cc: Ritesh Harjani <riteshh@linux.ibm.com>,
	Ye Bin <yebin10@huawei.com>,
	adilger.kernel@dilger.ca, jack@suse.com,
	linux-ext4@vger.kernel.org
Subject: Re: [PATCH v5 1/2] ext4: Discard preallocations before releasing group lock
Date: Thu, 24 Sep 2020 11:00:34 -0400	[thread overview]
Message-ID: <20200924150034.GH482521@mit.edu> (raw)
In-Reply-To: <20200918095653.GF18920@quack2.suse.cz>

On Fri, Sep 18, 2020 at 11:56:53AM +0200, Jan Kara wrote:
> On Fri 18-09-20 14:37:15, Ritesh Harjani wrote:
> > 
> > 
> > On 9/16/20 5:08 PM, Ye Bin wrote:
> > > From: Jan Kara <jack@suse.cz>
> > > 
> > > ext4_mb_discard_group_preallocations() can be releasing group lock with
> > > preallocations accumulated on its local list. Thus although
> > > discard_pa_seq was incremented and concurrent allocating processes will
> > > be retrying allocations, it can happen that premature ENOSPC error is
> > > returned because blocks used for preallocations are not available for
> > > reuse yet. Make sure we always free locally accumulated preallocations
> > > before releasing group lock.
> > > 
> > > Fixes: 07b5b8e1ac40 ("ext4: mballoc: introduce pcpu seqcnt for freeing PA to improve ENOSPC handling")
> > > Signed-off-by: Jan Kara <jack@suse.cz>
> > > Signed-off-by: Ye Bin <yebin10@huawei.com>
> > > Reviewed-by: Ritesh Harjani <riteshh@linux.ibm.com>
> ...
> > > +	/* if we still need more blocks and some PAs were used, try again */
> > > +	if (free < needed && busy) {
> > > +		ext4_unlock_group(sb, group);
> > > +		cond_resched();
> > > +		busy = 0;
> > > +		/* Make sure we increment discard_pa_seq again */
> > > +		needed -= free;
> > > +		free = 0;
> > 
> > Oops sorry about getting back to this.
> > But if we are making free 0 here so we may return a wrong free value
> > when we return from this function. We should fix that by also accounting
> > previous freed blocks at the time of final return from this function.
> 
> Ah, good catch! I'll send v2 with this fixed up.

Did you send a v2 of this patch?  I can't find it in my inbox...

Thanks!

					- Ted

  reply	other threads:[~2020-09-24 15:01 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-16 11:38 [PATCH v5 0/2] Fix dead loop in ext4_mb_new_blocks Ye Bin
2020-09-16 11:38 ` [PATCH v5 1/2] ext4: Discard preallocations before releasing group lock Ye Bin
2020-09-18  9:07   ` Ritesh Harjani
2020-09-18  9:56     ` Jan Kara
2020-09-24 15:00       ` Theodore Y. Ts'o [this message]
2020-09-24 15:12         ` Jan Kara
2020-09-24 14:58   ` Theodore Y. Ts'o
2020-09-16 11:38 ` [PATCH v5 2/2] ext4: Fix dead loop in ext4_mb_new_blocks Ye Bin
2020-09-24 14:59   ` Theodore Y. Ts'o

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=20200924150034.GH482521@mit.edu \
    --to=tytso@mit.edu \
    --cc=adilger.kernel@dilger.ca \
    --cc=jack@suse.com \
    --cc=jack@suse.cz \
    --cc=linux-ext4@vger.kernel.org \
    --cc=riteshh@linux.ibm.com \
    --cc=yebin10@huawei.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.