Re: [PATCH v4 13/15] btrfs: Optimize unallocated chunks discard

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 1.04.19 г. 21:44 ч., David Sterba wrote:
> On Wed, Mar 27, 2019 at 02:24:16PM +0200, Nikolay Borisov wrote:
>> Currently unallocated chunks are always trimmed. For example
>> 2 consecutive trims on large storage would trim freespace twice
>> irrespective of whether the space was actually allocated or not between
>> those trims.
>>
>> Optimise this behavior by exploiting the newly introduced alloc_state
>> tree of btrfs_device. A new CHUNK_TRIMMED bit is used to mark
>> those unallocated chunks which have been trimmed and have not been
>> allocated afterwards. On chunk allocation the respective underlying devices'
>> physical space will have its CHUNK_TRIMMED flag cleared. This avoids
>> submitting discards for space which hasn't been changed since the last
>> time discard was issued.
> 
> This means during one mount, right? Because the state is not recorded
> on-disk anywhere. This also means that a complete unmount / mount
> followed by trim will do the discard on the freed blocks again. I don't
> thik there's anything wrong with that, just that this should be put to
> the docs.

Correct, on unmount btrfs_close_devices is called which frees trim state.

> 



[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux