Re: [PATCH v2 1/2] mm/vmalloc: export __vmalloc_node_range

From: Christian Borntraeger
Date: Wed Jun 09 2021 - 13:50:50 EST

On 09.06.21 18:49, Uladzislau Rezki wrote:
On Wed, Jun 09, 2021 at 06:28:09PM +0200, Claudio Imbrenda wrote:
On Wed, 9 Jun 2021 16:59:17 +0100
Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:

On Tue, Jun 08, 2021 at 08:06:17PM +0200, Claudio Imbrenda wrote:
The recent patches to add support for hugepage vmalloc mappings
added a flag for __vmalloc_node_range to allow to request small
pages. This flag is not accessible when calling vmalloc, the only
option is to call directly __vmalloc_node_range, which is not

This means that a module can't vmalloc memory with small pages.

Case in point: KVM on s390x needs to vmalloc a large area, and it
needs to be mapped with small pages, because of a hardware

This patch exports __vmalloc_node_range so it can be used in modules

No. I spent a lot of effort to mak sure such a low-level API is
not exported.

ok, but then how can we vmalloc memory with small pages from KVM?
Does the s390x support CONFIG_HAVE_ARCH_HUGE_VMALLOC what is arch

Not yet, but we surely want that for almost everything on s390.
Only this particular firmware interface does not handle large pages
for donated memory.

If not then small pages are used. Or am i missing something?

I agree with Christoph that exporting a low level internals
is not a good idea.