Re: [PATCH 07/32] mm: Bring back vmalloc_exec

Kent Overstreet
2023-05-14T23:43:42Z

On Sun, May 14, 2023 at 06:39:00PM +0000, Christophe Leroy wrote:
> I addition to that, I still don't understand why you bring back
> vmalloc_exec() instead of using module_alloc().
>
> As reminded in a previous response, some architectures like powerpc/32s
> cannot allocate exec memory in vmalloc space. On powerpc this is because
> exec protection is performed on 256Mbytes segments and vmalloc space is
> flagged non-exec. Some other architectures have a constraint on distance
> between kernel core text and other text.
>
> Today you have for instance kprobes in the kernel that need dynamic exec
> memory. It uses module_alloc() to get it. On some architectures you also
> have ftrace that gets some exec memory with module_alloc().
>
> So, I still don't understand why you cannot use module_alloc() and need
> vmalloc_exec() instead.

Because I didn't know about it :)

Looks like that is indeed the appropriate interface (if a bit poorly
named), I'll switch to using that, thanks.

It'll still need to be exported, but it looks like the W|X attribute
discussion is not really germane here since it's what other in kernel
users are using, and there's nothing particularly special about how
bcachefs is using it compared to them.