From: "hch@infradead.org" <hch@infradead.org>
To: Naohiro Aota <Naohiro.Aota@wdc.com>
Cc: "hch@infradead.org" <hch@infradead.org>,
"linux-btrfs@vger.kernel.org" <linux-btrfs@vger.kernel.org>
Subject: Re: [PATCH 5/8] btrfs: zoned: activate metadata block group on write time
Date: Wed, 26 Jul 2023 06:10:30 -0700 [thread overview]
Message-ID: <ZMEbRjKoX7KkXOqu@infradead.org> (raw)
In-Reply-To: <3bhaod54j3jasck454wbqaovmyaraxbypz3umcd24v6jmx76xp@vh54twyvcpns>
On Tue, Jul 25, 2023 at 09:28:09AM +0000, Naohiro Aota wrote:
> > > + bool is_system = cache->flags & BTRFS_BLOCK_GROUP_SYSTEM;
> > > +
> > > + spin_lock(&cache->lock);
> > > + if (test_bit(BLOCK_GROUP_FLAG_ZONE_IS_ACTIVE,
> > > + &cache->runtime_flags)) {
> > > + spin_unlock(&cache->lock);
> > > + return true;
> > > + }
> > > +
> > > + spin_unlock(&cache->lock);
> >
> > What is the point of the cache->lock crticial section here? The
> > information can be out of date as soon as you drop the lock, so it
> > looks superflous to me.
>
> The block group's activeness starts from non-active, then activated, and
> finally finished. So, if its "ACTIVE" here, the block group is going to be
> still active or finished. It's OK it is active. If it is finished, the IO
> will fail anyway, so it is a bug itself.
Yes, but what I mean is that there is no point in taking cache->lock
here. The only thing that's done under it is testing a single bit,
and the information from that bit is only used after dropping the
lock. So there should be no need to take the lock in the first place.
next prev parent reply other threads:[~2023-07-26 13:10 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-24 4:18 [PATCH 0/8] btrfs: zoned: write-time activation of metadata block group Naohiro Aota
2023-07-24 4:18 ` [PATCH 1/8] btrfs: zoned: introduce block_group context for submit_eb_page() Naohiro Aota
2023-07-24 15:00 ` Christoph Hellwig
2023-07-25 5:44 ` Naohiro Aota
2023-07-24 4:18 ` [PATCH 2/8] btrfs: zoned: defer advancing meta_write_pointer Naohiro Aota
2023-07-24 15:04 ` Christoph Hellwig
2023-07-25 8:59 ` Naohiro Aota
2023-07-26 13:06 ` hch
2023-07-24 4:18 ` [PATCH 3/8] btrfs: zoned: update meta_write_pointer on zone finish Naohiro Aota
2023-07-24 15:04 ` Christoph Hellwig
2023-07-25 9:01 ` Naohiro Aota
2023-07-24 4:18 ` [PATCH 4/8] btrfs: zoned: reserve zones for an active metadata/system block group Naohiro Aota
2023-07-24 15:06 ` Christoph Hellwig
2023-07-25 9:07 ` Naohiro Aota
2023-07-26 13:07 ` hch
2023-07-24 4:18 ` [PATCH 5/8] btrfs: zoned: activate metadata block group on write time Naohiro Aota
2023-07-24 6:24 ` kernel test robot
2023-07-24 7:36 ` kernel test robot
2023-07-24 7:57 ` kernel test robot
2023-07-24 15:12 ` Christoph Hellwig
2023-07-25 9:28 ` Naohiro Aota
2023-07-26 13:10 ` hch [this message]
2023-07-24 4:18 ` [PATCH 6/8] btrfs: zoned: no longer count fresh BG region as zone unusable Naohiro Aota
2023-07-24 4:18 ` [PATCH 7/8] btrfs: zoned: don't activate non-DATA BG on allocation Naohiro Aota
2023-07-24 4:18 ` [PATCH 8/8] btrfs: zoned: re-enable metadata over-commit for zoned mode Naohiro Aota
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=ZMEbRjKoX7KkXOqu@infradead.org \
--to=hch@infradead.org \
--cc=Naohiro.Aota@wdc.com \
--cc=linux-btrfs@vger.kernel.org \
/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).