lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ