All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Mike Audia" <mikey_a@gmx.com>
To: linux-btrfs@vger.kernel.org
Subject: BUG relating to fstrim on btrfs partitions
Date: Thu, 10 Oct 2013 06:20:42 -0400	[thread overview]
Message-ID: <20131010102043.74230@gmx.com> (raw)

I think I found a bug affecting btrfs filesystems and users invoking fstrim to discard unused blocks: if I execute a `fstrim -v /` twice, the amount trimmed does not change on the 2nd invocation AND it takes just as long as the first.  Why do I think this is a bug?  When I do the same on an ext4 partition I get different behavior: the output shows 0 B trimmed and it does is instantaneously when I run it a 2nd time.  After contacting the fstrim developer, he stated that the userspace part (fstrim) does only one thing and it is invoke an ioctl (FITRIM); it is the job of the filesystem to properly implement this.

Supporting data
----------------
Example on a btrfs partition:
The 1st time:
% time sudo fstrim -v /
/: 5.2 GiB (5575192576 bytes) trimmed
sudo fstrim -v /  0.00s user 0.05s system 2% cpu 2.084 total

The 2nd time:
% time sudo fstrim -v /
/: 5.2 GiB (5575192576 bytes) trimmed
sudo fstrim -v /  0.00s user 0.06s system 2% cpu 2.107 total

If I run the command twice on an ext4 filesystem, it does go to zero and the 2nd invocation is instantaneous:
The 1st time:
% time sudo fstrim -v /                   
/: 15.4 GiB (16481087488 bytes) trimmed
sudo fstrim -v /  0.00s user 0.08s system 1% cpu 6.268 total

The 2nd time:
% time sudo fstrim -v /
/: 0 B (0 bytes) trimmed
sudo fstrim -v /  0.00s user 0.00s system 48% cpu 0.007 total

             reply	other threads:[~2013-10-10 10:20 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-10 10:20 Mike Audia [this message]
2013-10-10 11:39 ` BUG relating to fstrim on btrfs partitions Duncan
2013-10-11 14:44   ` Eric Sandeen
2013-10-11 15:14     ` Emil Karlson
2013-10-11 15:21       ` Eric Sandeen

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=20131010102043.74230@gmx.com \
    --to=mikey_a@gmx.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 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.