Linux Btrfs filesystem development
 help / color / mirror / Atom feed
From: Josef Bacik <josef@toxicpanda.com>
To: Nikolay Borisov <nborisov@suse.com>,
	linux-btrfs@vger.kernel.org, kernel-team@fb.com
Subject: Re: [PATCH v4 5/6] btrfs: stop running all delayed refs during snapshot
Date: Fri, 18 Dec 2020 10:51:42 -0500	[thread overview]
Message-ID: <b640bcde-0910-3d4d-4b48-e77929a4bd6f@toxicpanda.com> (raw)
In-Reply-To: <346befc5-e425-846f-27c7-ada577dc5a63@suse.com>

On 12/18/20 4:26 AM, Nikolay Borisov wrote:
> 
> 
> On 17.12.20 г. 16:36 ч., Josef Bacik wrote:
>> This was added a very long time ago to work around issues with delayed
>> refs and with qgroups.  Both of these issues have since been properly
>> fixed, so all this does is cause a lot of lock contention with anybody
>> else who is running delayed refs.
>>
>> Signed-off-by: Josef Bacik <josef@toxicpanda.com>
> 
> Codewise it's ok, however I would have liked a better reference to the 2
> problems being fixed, I'd assume same applies to David. SO it seems the
> first delayed refs run was added due to :
> 
> 361048f586f5 ("Btrfs: fix full backref problem when inserting shared
> block reference") and the 2nd one by d67263354541 ("btrfs: qgroup: Make
> snapshot accounting work with new extent-oriented qgroup.")
> 
> 
> However there is no indication what code superseded the need for those 2
> commits.

For 361048f586f5 it's because we now do #2 as described in that commit, which is 
to make sure we insert the actual extent entry first, and then deal with all 
subsequent extent reference modifications.  The delayed refs code was quite 
fragile before, but we've gotten it into a good spot now so we no longer have 
this class of issues.

And you bring up a good point for the second one, now that I look at the code. 
It appeared to me at first glance that the qgroup stuff had been reworked to no 
longer require the delayed refs flush, but it still does require it, so I'll 
rework this to move it into the appropriate helper and I'll update this commit 
message.  Thanks,

Josef

  reply	other threads:[~2020-12-18 15:52 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1608215738.git.josef@toxicpanda.com>
2020-12-17 14:35 ` [PATCH v4 1/6] btrfs: do not block on deleted bgs mutex in the cleaner Josef Bacik
2020-12-17 14:35 ` [PATCH v4 2/6] btrfs: only let one thread pre-flush delayed refs in commit Josef Bacik
2020-12-17 14:35 ` [PATCH v4 3/6] btrfs: delayed refs pre-flushing should only run the heads we have Josef Bacik
2020-12-17 14:36 ` [PATCH v4 4/6] btrfs: only run delayed refs once before committing Josef Bacik
2020-12-17 14:36 ` [PATCH v4 5/6] btrfs: stop running all delayed refs during snapshot Josef Bacik
2020-12-18  9:26   ` Nikolay Borisov
2020-12-18 15:51     ` Josef Bacik [this message]
2020-12-17 14:36 ` [PATCH v4 6/6] btrfs: run delayed refs less often in commit_cowonly_roots Josef Bacik
2020-12-18  9:26   ` Nikolay Borisov

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=b640bcde-0910-3d4d-4b48-e77929a4bd6f@toxicpanda.com \
    --to=josef@toxicpanda.com \
    --cc=kernel-team@fb.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=nborisov@suse.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