public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Nikolay Borisov <nborisov@suse.com>
To: "Darrick J. Wong" <darrick.wong@oracle.com>
Cc: linux-btrfs@vger.kernel.org, Filipe Manana <fdmanana@suse.com>,
	Jeff Mahoney <jeffm@suse.com>
Subject: Re: [PATCH v3 00/12] FITRIM improvements
Date: Tue, 26 Mar 2019 10:09:22 +0200	[thread overview]
Message-ID: <cf0fa4fe-52a6-3b7d-a381-a7b371a7de36@suse.com> (raw)
In-Reply-To: <20190325184456.GA1172@magnolia>

[CC'ing Filipe as he should now better ]

On 25.03.19 г. 20:44 ч., Darrick J. Wong wrote:
> On Mon, Mar 25, 2019 at 02:31:20PM +0200, Nikolay Borisov wrote:
>> Here is v3 of the fitrim patches. Change since v2 [0]: 
>>
>>  * Replaced BUG_ON with WARN_ON in patch 2
>>
>>  * Added RB to patches 04/05/06/09
>>
>>  * Squashed "btrfs: Transpose btrfs_close_devices/btrfs_mapping_tree_free in close_ctree"
>>  into patch 07. It was only sent to the mailing list as a followup.
>>
>>  * Rebased all patches on latest misc-next.
>>
>>  This has undergone multiple xfstest runs and I think is ready to be merged.
>>
>> [0] https://lore.kernel.org/linux-btrfs/20190211083510.27591-1-nborisov@suse.com/
>>
>>
>> Jeff Mahoney (1):
>>   btrfs: replace pending/pinned chunks lists with io tree
>>
>> Nikolay Borisov (11):
>>   btrfs: Honour FITRIM range constraints during free space trim
> 
> This is vaguely off-topic, but I noticed that you can FITRIM a btrfs
> filesystem mounted nologreplay.  Assuming the fitrim code uses the free
> space information to drive the discard calls, is it safe to do that with
> unreplayed metadata?

Pertinent question, indeed. But I'd defer to Filipe since he knows the
log tree code. Filipe, FITRIM uses the freespace_ctl struct from block
group to trim the freespace inside block groups, as well as the free
device space to trim unallocated space. If we have a dirty log tree are
those coherent with the dirty data i.e is it reflected in the BG's
freespace cache that the data in the logs tree is actually allocated? If
the answer is 'no' then it will be prudent to disallow trim in this case.


> 
> (And no, I don't really know what nologreplay does, so please excuse my
> ignorance...)

Log replay means the content of the log tree (which is something like a
WAL) must be copied back into the main btree.

> 
> --D
> 
>>   btrfs: combine device update operations during transaction commit
>>   btrfs: Handle pending/pinned chunks before blockgroup relocation
>>     during device shrink
>>   btrfs: Rename and export clear_btree_io_tree
>>   btrfs: Populate ->orig_block_len during read_one_chunk
>>   btrfs: Introduce new bits for device allocation tree
>>   btrfs: Remove 'trans' argument from find_free_dev_extent(_start)
>>   btrfs: Factor out in_range macro
>>   btrfs: Optimize unallocated chunks discard
>>   btrfs: Implement find_first_clear_extent_bit
>>   btrfs: Switch btrfs_trim_free_extents to find_first_clear_extent_bit
>>
>>  fs/btrfs/ctree.h            |   8 +-
>>  fs/btrfs/dev-replace.c      |   2 +-
>>  fs/btrfs/disk-io.c          |  20 ++-
>>  fs/btrfs/extent-tree.c      | 102 +++++--------
>>  fs/btrfs/extent_io.c        | 103 +++++++++++++-
>>  fs/btrfs/extent_io.h        |  19 ++-
>>  fs/btrfs/extent_map.c       |  38 +++++
>>  fs/btrfs/extent_map.h       |   1 -
>>  fs/btrfs/free-space-cache.c |   4 -
>>  fs/btrfs/transaction.c      |  51 +------
>>  fs/btrfs/transaction.h      |   2 +-
>>  fs/btrfs/volumes.c          | 277 ++++++++++++++----------------------
>>  fs/btrfs/volumes.h          |  23 ++-
>>  13 files changed, 332 insertions(+), 318 deletions(-)
>>
>> -- 
>> 2.17.1
>>
> 

  reply	other threads:[~2019-03-26  8:09 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-25 12:31 [PATCH v3 00/12] FITRIM improvements Nikolay Borisov
2019-03-25 12:31 ` [PATCH v3 01/12] btrfs: Honour FITRIM range constraints during free space trim Nikolay Borisov
2019-03-25 12:31 ` [PATCH v3 02/12] btrfs: combine device update operations during transaction commit Nikolay Borisov
2019-03-25 13:44   ` Nikolay Borisov
2019-03-25 12:31 ` [PATCH v3 03/12] btrfs: Handle pending/pinned chunks before blockgroup relocation during device shrink Nikolay Borisov
2019-03-25 15:09   ` David Sterba
2019-03-25 15:16   ` David Sterba
2019-03-25 12:31 ` [PATCH v3 04/12] btrfs: Rename and export clear_btree_io_tree Nikolay Borisov
2019-03-25 12:31 ` [PATCH v3 05/12] btrfs: Populate ->orig_block_len during read_one_chunk Nikolay Borisov
2019-03-25 12:31 ` [PATCH v3 06/12] btrfs: Introduce new bits for device allocation tree Nikolay Borisov
2019-03-25 16:12   ` David Sterba
2019-03-25 16:13     ` Nikolay Borisov
2019-03-25 12:31 ` [PATCH v3 07/12] btrfs: replace pending/pinned chunks lists with io tree Nikolay Borisov
2019-03-25 14:22   ` David Sterba
2019-03-25 16:26   ` David Sterba
2019-03-25 16:43     ` Nikolay Borisov
2019-03-25 16:57       ` David Sterba
2019-03-25 12:31 ` [PATCH v3 08/12] btrfs: Remove 'trans' argument from find_free_dev_extent(_start) Nikolay Borisov
2019-03-25 12:31 ` [PATCH v3 09/12] btrfs: Factor out in_range macro Nikolay Borisov
2019-03-25 12:31 ` [PATCH v3 10/12] btrfs: Optimize unallocated chunks discard Nikolay Borisov
2019-03-25 16:29   ` David Sterba
2019-03-25 12:31 ` [PATCH v3 11/12] btrfs: Implement find_first_clear_extent_bit Nikolay Borisov
2019-03-25 12:31 ` [PATCH v3 12/12] btrfs: Switch btrfs_trim_free_extents to find_first_clear_extent_bit Nikolay Borisov
2019-03-25 18:44 ` [PATCH v3 00/12] FITRIM improvements Darrick J. Wong
2019-03-26  8:09   ` Nikolay Borisov [this message]
2019-03-26 10:50     ` 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=cf0fa4fe-52a6-3b7d-a381-a7b371a7de36@suse.com \
    --to=nborisov@suse.com \
    --cc=darrick.wong@oracle.com \
    --cc=fdmanana@suse.com \
    --cc=jeffm@suse.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