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

From: Uladzislau Rezki
Date: Wed Jun 09 2021 - 12:50:26 EST


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
> > > exported.
> > >
> > > 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
> > > limitation.
> > >
> > > This patch exports __vmalloc_node_range so it can be used in modules
> > > too.
> >
> > 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
specific?

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.

--
Vlad Rezki