linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ivan Shapovalov <intelfx@intelfx.name>
To: Filipe Manana <fdmanana@kernel.org>
Cc: linux-btrfs@vger.kernel.org
Subject: Re: [PATCH 0/5] btrfs: some fixes around unused block deletion
Date: Mon, 29 Jan 2024 18:56:00 +0100	[thread overview]
Message-ID: <2c1c21479e8998953541708648d0c02e21d7fd6e.camel@intelfx.name> (raw)
In-Reply-To: <CAL3q7H6802ayLHUJFztzZAVzBLJAGdFx=6FHNNy87+obZXXZpQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3104 bytes --]

On 2024-01-29 at 12:49 +0000, Filipe Manana wrote:
> On Sat, Jan 27, 2024 at 9:39 PM Ivan Shapovalov
> <intelfx@intelfx.name> wrote:
> > 
> > On 2024-01-25 at 10:26 +0000, fdmanana@kernel.org wrote:
> > > From: Filipe Manana <fdmanana@suse.com>
> > > 
> > > These fix a couple issues regarding block group deletion, either
> > > deleting
> > > an unused block group when it shouldn't be deleted due to
> > > outstanding
> > > reservations relying on the block group, or unused block groups
> > > never
> > > getting deleted since they were created due to pessimistic space
> > > reservation and ended up never being used. More details on the
> > > change
> > > logs of each patch.
> > > 
> > > Filipe Manana (5):
> > >   btrfs: add and use helper to check if block group is used
> > >   btrfs: do not delete unused block group if it may be used soon
> > >   btrfs: add new unused block groups to the list of unused block
> > > groups
> > >   btrfs: document what the spinlock unused_bgs_lock protects
> > >   btrfs: add comment about list_is_singular() use at
> > > btrfs_delete_unused_bgs()
> > > 
> > >  fs/btrfs/block-group.c | 87
> > > +++++++++++++++++++++++++++++++++++++++++-
> > >  fs/btrfs/block-group.h |  7 ++++
> > >  fs/btrfs/fs.h          |  3 ++
> > >  3 files changed, 95 insertions(+), 2 deletions(-)
> > > 
> > 
> > Still broken for me, unfortunately.
> 
> I'm curious about your workload. Is it something like continuous,
> non-stop deduplication or cloning for example?
> 
> Did you actually experience -ENOSPC errors?
> 
> Also, if you unmount and then mount again the fs, any unused block
> groups should be scheduled for deletion once the cleaner thread runs,
> at least if there's not a huge workload for a minute or two.

Apologies, I must have clarified the workload.

The easiest way to reproduce the original problem was to run a metadata
balance, e. g. `btrfs balance start -m /` or
`for u in {0..75..5}; do btrfs balance start -musage=$u /`.

I originally spotted this regression by observing an abnormally low
metadata space utilization and trying to run the above balance, only to
discover that it makes overallocation even worse.

So, with the patchset applied, the _metadata balance_ is still broken.
I cannot say anything about normal usage, but any attempt to balance
metadata immediately explodes the metadata allocation. I did not
experience a -ENOSPC per se, but the balance (that I used as a
reproducer) eventually consumed *all* unallocated space on the volume
and stopped making progress. Attempting to cancel that balance RO'ed
the filesystem and I had to reboot.

> 
> On top of this patchset, can you try the following patch?
> 
> https://pastebin.com/raw/U7b0e03g
> 
> If that still doesn't help, try the following the following patch on
> top of this patchset:
> 
> https://pastebin.com/raw/rKiSmG5w

Should I still try these patches to see if they help with metadata
balance, or is that a different problem then?

Thanks,
-- 
Ivan Shapovalov / intelfx /

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2024-01-29 17:56 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-25 10:26 [PATCH 0/5] btrfs: some fixes around unused block deletion fdmanana
2024-01-25 10:26 ` [PATCH 1/5] btrfs: add and use helper to check if block group is used fdmanana
2024-01-25 10:26 ` [PATCH 2/5] btrfs: do not delete unused block group if it may be used soon fdmanana
2024-01-25 10:26 ` [PATCH 3/5] btrfs: add new unused block groups to the list of unused block groups fdmanana
2024-01-25 10:26 ` [PATCH 4/5] btrfs: document what the spinlock unused_bgs_lock protects fdmanana
2024-01-25 10:26 ` [PATCH 5/5] btrfs: add comment about list_is_singular() use at btrfs_delete_unused_bgs() fdmanana
2024-01-25 15:16 ` [PATCH 0/5] btrfs: some fixes around unused block deletion Johannes Thumshirn
2024-01-25 20:57 ` Josef Bacik
2024-01-25 21:32 ` Boris Burkov
2024-01-27 21:39 ` Ivan Shapovalov
2024-01-29 12:49   ` Filipe Manana
2024-01-29 17:56     ` Ivan Shapovalov [this message]
2024-01-29 20:28       ` Filipe Manana
2024-02-02  0:52         ` Ivan Shapovalov
2024-02-02 16:48           ` Filipe Manana

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=2c1c21479e8998953541708648d0c02e21d7fd6e.camel@intelfx.name \
    --to=intelfx@intelfx.name \
    --cc=fdmanana@kernel.org \
    --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).