From: "Richard W.M. Jones" <rjones@redhat.com>
To: Eric Sandeen <sandeen@redhat.com>
Cc: linux-ext4@vger.kernel.org
Subject: Re: fstrim has no effect on a just-mounted filesystem
Date: Tue, 11 Mar 2014 22:00:13 +0000 [thread overview]
Message-ID: <20140311220013.GV1346@redhat.com> (raw)
In-Reply-To: <531F8456.2020404@redhat.com>
[The context of this is trying to get virt-sparsify to work in place
on disks.]
On Tue, Mar 11, 2014 at 04:47:02PM -0500, Eric Sandeen wrote:
> On 3/11/14, 4:39 PM, Richard W.M. Jones wrote:
> >
> > Here's a problem I can't work out:
> >
> > I have a filesystem (in a VM) that I know has at least 100MB of
> > deleted files on it.
>
> Was it mounted with -o discard at the time the files were deleted?
No, it was not.
I know that the original 'rm' command didn't recover any space because
the disk image grew by ~100 MB.
> If so, then the trim is already done during the unlink process,
> and there's no more work to do.
>
> So that's my first thought, but ...
>
> > Doing this in a script:
> >
> > mount -o discard /dev/sda1 /mnt
> > fstrim /mnt
> >
> > ... does nothing. Also the fstrim is almost instantaneous -- there's
> > no way it could be scanning the disk.
>
> blktrace would be a better tool to find out whether or not discards
> are actually getting issued to storage...
>
> And if you strace it what does the ioctl return?
I'll try that in a few minutes.
In the mean time I captured the fstrim -v output:
fstrim -v /
/: 124 MiB (130039808 bytes) trimmed
124 MB is (within 25%) the amount of data I would expect needs to be
trimmed.
> Enabling the trace_ext4_trim_all_free tracepoint might be interesting too.
That a systemtap thing? It's tricky to get systemtap working in a
virtual machine, but I guess I can try if nothing else works.
> > However, if I start with the same filesystem, mounted with -o discard,
> > and create and rm large files, while observing the size of the
> > underlying virtual disk, then discard is obviously working fine. 'rm'
> > of large files makes the underlying disk shrink.
> >
> > Any ideas here?
>
> first of all, I should point out that "-o discard" is not necessary for
> fstrim / FITRIM ioctl to work. The former tries to trim as soon
> as files are unlinked; FITRIM goes looking for free blocks to trim.
>
> If you're mounting with -o discard, then fstrim should never find any
> workd to do.
Useful to know.
I thought I had to use -o discard in order for the ext4 module to send
discard commands at all to the block layer.
Thanks,
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/
next prev parent reply other threads:[~2014-03-11 22:00 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-11 21:39 fstrim has no effect on a just-mounted filesystem Richard W.M. Jones
2014-03-11 21:47 ` Eric Sandeen
2014-03-11 22:00 ` Richard W.M. Jones [this message]
2014-03-11 22:04 ` Richard W.M. Jones
2014-03-11 22:08 ` Eric Sandeen
2014-03-11 22:59 ` Richard W.M. Jones
2014-03-11 23:07 ` Richard W.M. Jones
2014-03-11 23:09 ` Eric Sandeen
2014-03-11 23:30 ` Richard W.M. Jones
2014-03-12 10:17 ` Richard W.M. Jones
2014-03-12 13:42 ` Richard W.M. Jones
2014-03-12 18:10 ` Paolo Bonzini
2014-03-12 18:24 ` Richard W.M. Jones
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=20140311220013.GV1346@redhat.com \
--to=rjones@redhat.com \
--cc=linux-ext4@vger.kernel.org \
--cc=sandeen@redhat.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 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.