Re: [PATCH net-next 03/12] mm: Make the page_frag_cache allocator alignment param a pow-of-2

From: David Howells
Date: Fri Jun 16 2023 - 11:29:29 EST


Alexander H Duyck <alexander.duyck@xxxxxxxxx> wrote:

> The requirement should only be cache alignment, not power of 2
> alignment.

Sure, but, upstream, page_frag_alloc_align() allows the specification of an
alignment and applies that alignment by:

offset &= align_mask;

which doesn't really make sense unless the alignment boils down to being a
power of two. Now, it might make sense to kill off the align_mask parameter
and just go with SMP_CACHE_BYTES (which will be a power of two).

Note, though, that most users seem to use an align_mask of ~0u which feels a
bit dodgy (it's not an unsigned long), but is probably fine.

David