[dm-devel] [PATCH v3 0/2] block: improvements for discard alignment

Jens Axboe axboe at kernel.dk
Wed Aug 1 15:49:58 UTC 2012


On 08/01/2012 03:40 PM, Mike Snitzer wrote:
> On Thu, Jul 05 2012 at 12:01pm -0400,
> Paolo Bonzini <pbonzini at redhat.com> wrote:
> 
>> When a disk has a large discard_granularity, discards are not split with
>> optimal alignment; the pessimization gets bigger as discard_granularity
>> and max_discard_sectors become closer.
>>
>> Take the limit case of discard_granularity == max_discard_sectors == 64.
>> Then, if a request is submitted for 256 sectors 2..257 it will be split
>> like this: 2..65, 66..129, 130..193, 194..257.  None of these requests
>> is aligned, so in fact you might end up with no discarded logical blocks
>> at all.  With this patch, the split will be 2..63, 64..127, 128..191,
>> 192..255, 256..257.  The patches also take the discard_alignment into
>> consideration.
>>
>> Patch 1 adjusts the computation of the granularity-adjusted
>> max_discard_sectors so that it prepares for the new code in patch 2,
>> which actually adjusts the split.
>>
>> v2->v3: drop addition of queue/discard_alignment to sysfs, use
>>   correct alignment for partitions
>>
>> Paolo Bonzini (2):
>>   block: reorganize rounding of max_discard_sectors
>>   block: split discard into aligned requests
>>
>>  block/blk-lib.c        |   41 ++++++++++++++++++++++++++++-------------
>>  include/linux/blkdev.h |   10 ++++++++++
>>  2 files changed, 38 insertions(+), 13 deletions(-)
> 
> Hey Jens,
> 
> Would be great to get these discard fixes in.  I know both Christoph and
> Vivek have reviewed these changes but that isn't reflected in the patch
> headers.
> 
> These patches eliminate misaligned discard from being sent to the
> dm-thinp target.
> 
> Tested-by: Mike Snitzer <snitzer at redhat.com>

Sure, I'll get it in for this series. Thanks.

-- 
Jens Axboe




More information about the dm-devel mailing list