All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC][PATCH 0/3] Btrfs: speed up fstrim
@ 2011-12-29  9:49 Li Zefan
  2011-12-29  9:49 ` [PATCH 1/3][URGENT] Btrfs: allow future use of type field of struct btrfs_free_space_entry Li Zefan
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Li Zefan @ 2011-12-29  9:49 UTC (permalink / raw)
  To: Chris Mason; +Cc: linux-btrfs@vger.kernel.org, Martin Steigerwald

(This patchset is not for merge or review, except the first patch)

By remembering which areas have been trimmed, we can speed up
fstrim significantly.

    # fstrim -v /mnt/
    /mnt/: 152772608 bytes were trimmed
    # fstrim -v /mnt/
    /mnt/: 0 bytes were trimmed

To implement this, after a free space item has been trimmed, we
mark it as trimmed before inserting it into free space cache.

(*)If we want to speed up the first fstrim after mounting the filesystem,
we have to save the trimmed flag to disk, which will break backward
compatibility, but only 3.2-rcX kernels will be affected.

That is, if you use fstrim in newest kernel with this patchset applied,
and then you mount the fs in a 3.2-rcX kernel, you may trigger a BUG_ON()
in __load_free_space_cache() sooner or later.

So, is this acceptable?

     # fstrim -v /mnt/
     /mnt/: 267714560 bytes were trimmed
     # fstrim -v /mnt/
     /mnt/: 0 bytes were trimmed
     # sync
     # umount /mnt
     # !mount
     # fstrim -v /mnt/
     /mnt/: 152240128 bytes were trimmed

Because caches for block groups smaller than 100M will not be written
to disk, we'll still have to trim them.

*See this thread for a user request for this feature:
	https://lkml.org/lkml/2011/12/1/24


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-12-29  9:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-29  9:49 [RFC][PATCH 0/3] Btrfs: speed up fstrim Li Zefan
2011-12-29  9:49 ` [PATCH 1/3][URGENT] Btrfs: allow future use of type field of struct btrfs_free_space_entry Li Zefan
2011-12-29  9:49 ` [PATCH 2/3] Btrfs: speed up fstrim Li Zefan
2011-12-29  9:50 ` [PATCH 3/3] Btrfs: save trimmed flag onto disk Li Zefan

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.