Re: [PATCH 4/4] mm,hugetlb: compute page_size_log properly

From: Davidlohr Bueso
Date: Fri Feb 10 2017 - 11:51:38 EST

On Fri, 10 Feb 2017, Michal Hocko wrote:

On Thu 09-02-17 12:53:02, Davidlohr Bueso wrote:
The SHM_HUGE_* stuff was introduced in:

42d7395feb5 (mm: support more pagesizes for MAP_HUGETLB/SHM_HUGETLB)

It unnecessarily adds another layer, specific to sysv shm, without
anything special about it: the macros are identical to the MAP_HUGE_*
stuff, which in turn does correctly describe the hugepage subsystem.

One example of the problems with extra layers what this patch fixes:
mmap_pgoff() should never be using SHM_HUGE_* logic. It is obviously
harmless but it would still be grand to get rid of it -- although
now in the manpages I don't see that happening.

Can we just drop SHM_HUGE_MASK altogether? It is not exported in uapi
headers AFAICS.

Yeah that was my original idea, however I noticed that shmget.2 mentions
kernel internals as part of SHM_HUGE_{2MB,1GB}, ie: SHM_HUGE_SHIFT. So
dropping _MASK doesn't make sense if we are going to keep _SHIFT.