On 12/03/2025 13:45, Christoph Hellwig wrote:
On Wed, Mar 12, 2025 at 08:05:14AM +0000, John Garry wrote:
Shouldn't we be doing this by default for any extent size hint
based allocations?
I'm not sure.
I think that currently users just expect extszhint to hint at the
granularity only.
Maybe users don't require alignment and adding an alignment requirement just
leads to more fragmentation.
But does it? Once an extsize hint is set I'd expect that we keep
getting more allocation with it.
Sure, but that value is configurable per inode (so not all inodes may
have it set)...but then it is also inherited.
And keeping the aligned is the concept
of a buddy allocator which reduces fragmentation. Because of that I
wonder why we aren't doing that by default.
As I see, we just pay attention to stripe alignment. Dave also
questioned this - Dave, any further idea on why this?
To me it could sense to use extszhint as the alignment requirement, but
only if no stripe alignment. We also need to ensure to ignore this in
low space allocator.
Thanks,
John