On 05.12.24 01:18, Zi Yan wrote:
Instead of splitting the large folio uniformly during truncation, use buddy allocator like split at the start of truncation range to minimize the number of resulting folios. For example, to truncate a order-4 folio [0, 1, 2, 3, 4, 5, ..., 15] between [3, 10] (inclusive), folio_split() splits the folio to [0,1], [2], [3], [4..7], [8..15] and [3], [4..7] can be dropped and [8..15] is kept with zeros in [8..10].
But isn't that making things worse that they are today? Imagine fallocate() on a shmem file where we won't be freeing memory?
-- Cheers, David / dhildenb