Re: [PATCH] mm: change size_t to unsigned int for cma_alloc

From: David Hildenbrand
Date: Tue Mar 30 2021 - 11:05:56 EST


On 30.03.21 17:00, Minchan Kim wrote:
On Tue, Mar 30, 2021 at 09:58:37AM +0200, David Hildenbrand wrote:
On 29.03.21 22:12, Minchan Kim wrote:
On Mon, Mar 29, 2021 at 07:44:31PM +0100, Matthew Wilcox wrote:
On Mon, Mar 29, 2021 at 11:25:53AM -0700, Minchan Kim wrote:
size_t in cma_alloc is confusing since it makes people think
it's byte count, not pages. Fix it.

i think it has to be unsigned long.

67a2e213e7e937c41c52ab5bc46bf3f4de469f6e

Right.

Fortunately, we don't have such large allocations yet via
CMA/alloc_contig_range


Thanks for the pinter. I wanted to have the smallest change.
The commit leads me to change cma_release, trace_cma_alloc,
cma_clear_bitmap and front_contig_range as well.(Not sure
we have more. Will check).

Ccing david@xxxxxxxxxx for upcoming changing free_contig_range.

While at it, we might want to convert free_contig_range() to eat
"unsigned long start, unsigned long end" like alloc_contig_range(), instead
of "unsigned long pfn, unsigned int nr_pages" like alloc_contig_pages() ...

Well, I personllay tempted to change alloc_contig_range, not
free_contig_range because base_pfn with nr_pages was more
straightforward than base_pfn and end_pfn in that we don't
need to tell whether end_pfn is inclusive or exclusive.


That's right.

When I look at callers of [alloc|free]_contig_range, many of them
already have used nr_pages based approach rather than start_pfn,
end_pfn. If your suggestion come from that "it's *range* API",

Right you are, teaching alloc_contig_range() to eat "nr_pages" might actually be even better and more consistent.

I'd like to rename it with "alloc_contig_pages|free_contig_pages".

alloc_contig_pages is just a wrapper for alloc_contig_range(), so free_contig_range() is a better fit; OTOH, having both would also somehow make sense.


Since it's beyond the goal of this patch and might be controversial,
I will not deal with it in this patch.

Sure, but feel free to send a patch to make that consistent. It's been bugging me already (having to always remember if to pass in nr_pages or end).

--
Thanks,

David / dhildenb