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
next prev parent 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