Re: [PATCH] x86 get_unmapped_area: Add PMD alignment for DAX PMD mmap

From: Matthew Wilcox
Date: Thu Apr 07 2016 - 13:41:19 EST


On Wed, Apr 06, 2016 at 11:44:32AM -0600, Toshi Kani wrote:
> > The NVML chooses appropriate addresses and gets a properly aligned
> > address without any kernel code.
>
> An application like NVML can continue to specify a specific address to
> mmap().  Most existing applications, however, do not specify an address to
> mmap().  With this patch, specifying an address will remain optional.

The point is that this *can* be done in userspace. You need to sell us
on the advantages of doing it in the kernel.

> > I think this is the wrong place for it, if we decide that this is the
> > right thing to do.  The filesystem has a get_unmapped_area() which
> > should be used instead.
>
> Yes, I considered adding a filesystem entry point, but decided going this
> way because:
>  - arch_get_unmapped_area() and arch_get_unmapped_area_topdown() are arch-
> specific code.  Therefore, this filesystem entry point will need arch-
> specific implementation. 
>  - There is nothing filesystem specific about requesting PMD alignment.

See http://article.gmane.org/gmane.linux.kernel.mm/149227 for Hugh's
approach for shmem. I strongly believe that if we're going to do this
i the kernel, we should build on this approach, and not hack something
into each architecture's generic get_unmapped_area.