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,