Re: [PATCH] block: fix unexpected split in bio_discard_limit

From: Li Feng
Date: Tue Aug 22 2023 - 09:28:26 EST




> 2023年8月22日 21:07,Ming Lei <ming.lei@xxxxxxxxxx> 写道:
>
> On Thu, Aug 17, 2023 at 3:42 PM Li Feng <fengli@xxxxxxxxxx> wrote:
>>
>> bio_discard_limit() enforces discard boundaries within the range of 32-bit
>> unsigned integers, resulting in unexpected discard cut boundaries.
>
> Any bio size can't be bigger than UINT_MAX, see bio definition.
>
>>
>> For example, max discard size = 1MiB, discard_granularity = 512B, then the
>> discard lengths sent in the range [0,4G) are 1MiB, 1MiB... (1MiB-512).
>> The next discard offset from 4G is [4G-512, 4G-512+1MiB).
>> The discard of the 4G offset boundary does not comply with the optimal 1MiB
>> size.
>
> As mentioned, max bio size is 4GB, so there shouldn't be such issue.
>
> Thanks,
>
Got it, many thanks.