[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAPTztWb9x1zKTOwdYmVq7gq5ebLjBX7AH=g8+qdx4YGQ1D-J7Q@mail.gmail.com>
Date: Mon, 27 Jan 2025 21:15:59 -0800
From: Frank van der Linden <fvdl@...gle.com>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: muchun.song@...ux.dev, linux-mm@...ck.org, linux-kernel@...r.kernel.org,
yuzhao@...gle.com, usama.arif@...edance.com, joao.m.martins@...cle.com,
roman.gushchin@...ux.dev
Subject: Re: [PATCH 02/27] mm, cma: support multiple contiguous ranges, if requested
On Mon, Jan 27, 2025 at 8:19 PM Andrew Morton <akpm@...ux-foundation.org> wrote:
>
> On Mon, 27 Jan 2025 23:21:42 +0000 Frank van der Linden <fvdl@...gle.com> wrote:
>
> > Currently, CMA manages one range of physically contiguous memory.
> > Creation of larger CMA areas with hugetlb_cma may run in to gaps
> > in physical memory, so that they are not able to allocate that
> > contiguous physical range from memblock when creating the CMA
> > area.
> >
>
> This one breaks my x86_64 allmodconfig build, which I find surprising.
> Did I miss some dependency?
>
> mm/cma_debug.c: In function 'cma_maxchunk_get':
> mm/cma_debug.c:51:38: error: too few arguments to function 'cma_bitmap_maxno'
> 51 | unsigned long bitmap_maxno = cma_bitmap_maxno(cma);
> | ^~~~~~~~~~~~~~~~
> In file included from mm/cma_debug.c:16:
> mm/cma.h:56:29: note: declared here
> 56 | static inline unsigned long cma_bitmap_maxno(struct cma *cma,
> | ^~~~~~~~~~~~~~~~
> mm/cma_debug.c:55:49: error: 'struct cma' has no member named 'bitmap'; did you mean 'dfs_bitmap'?
> 55 | start = find_next_zero_bit(cma->bitmap, bitmap_maxno, end);
> | ^~~~~~
> | dfs_bitmap
> mm/cma_debug.c:58:42: error: 'struct cma' has no member named 'bitmap'; did you mean 'dfs_bitmap'?
> 58 | end = find_next_bit(cma->bitmap, bitmap_maxno, start);
> | ^~~~~~
> | dfs_bitmap
> In file included from mm/cma_debug.c:9:
> mm/cma_debug.c: In function 'cma_debugfs_add_one':
> mm/cma_debug.c:169:33: error: 'struct cma' has no member named 'base_pfn'
> 169 | &cma->base_pfn, &cma_debugfs_fops);
> | ^~
> ./include/linux/debugfs.h:129:38: note: in definition of macro 'debugfs_create_file'
> 129 | (name, mode, parent, data, fops)
> | ^~~~
> mm/cma_debug.c:176:45: error: 'struct cma' has no member named 'bitmap'; did you mean 'dfs_bitmap'?
> 176 | cma->dfs_bitmap.array = (u32 *)cma->bitmap;
> | ^~~~~~
> | dfs_bitmap
> In file included from ./include/vdso/const.h:5,
> from ./include/linux/const.h:4,
> from ./include/linux/list.h:9,
> from ./include/linux/wait.h:7,
> from ./include/linux/wait_bit.h:8,
> from ./include/linux/fs.h:6,
> from ./include/linux/debugfs.h:15:
> mm/cma_debug.c:177:51: error: too few arguments to function 'cma_bitmap_maxno'
> 177 | cma->dfs_bitmap.n_elements = DIV_ROUND_UP(cma_bitmap_maxno(cma),
> | ^~~~~~~~~~~~~~~~
> ./include/uapi/linux/const.h:51:40: note: in definition of macro '__KERNEL_DIV_ROUND_UP'
> 51 | #define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
> | ^
> mm/cma_debug.c:177:38: note: in expansion of macro 'DIV_ROUND_UP'
> 177 | cma->dfs_bitmap.n_elements = DIV_ROUND_UP(cma_bitmap_maxno(cma),
> | ^~~~~~~~~~~~
> mm/cma.h:56:29: note: declared here
> 56 | static inline unsigned long cma_bitmap_maxno(struct cma *cma,
> | ^~~~~~~~~~~~~~~~
>
No, you're quite right - somehow I dropped the CMA_DEBUGFS part of the
range change before sending it, probably during rebasing it to the
latest tree.
I'll add it back in a v2, I should probably wait for other comments
before sending that.
- Frank
Powered by blists - more mailing lists