On 11/23/18 4:21 PM, Michal Hocko wrote: > On Fri 23-11-18 16:07:06, Vlastimil Babka wrote: >> On 11/20/18 11:35 AM, Michal Hocko wrote: >>> From: Michal Hocko <mhocko@xxxxxxxx> >>> >>> Userspace falls short when trying to find out whether a specific memory >>> range is eligible for THP. There are usecases that would like to know >>> that >>> http://lkml.kernel.org/r/alpine.DEB.2.21.1809251248450.50347@xxxxxxxxxxxxxxxxxxxxxxxxx >>> : This is used to identify heap mappings that should be able to fault thp >>> : but do not, and they normally point to a low-on-memory or fragmentation >>> : issue. >>> >>> The only way to deduce this now is to query for hg resp. nh flags and >>> confronting the state with the global setting. Except that there is >>> also PR_SET_THP_DISABLE that might change the picture. So the final >>> logic is not trivial. Moreover the eligibility of the vma depends on >>> the type of VMA as well. In the past we have supported only anononymous >>> memory VMAs but things have changed and shmem based vmas are supported >>> as well these days and the query logic gets even more complicated >>> because the eligibility depends on the mount option and another global >>> configuration knob. >>> >>> Simplify the current state and report the THP eligibility in >>> /proc/<pid>/smaps for each existing vma. Reuse transparent_hugepage_enabled >>> for this purpose. The original implementation of this function assumes >>> that the caller knows that the vma itself is supported for THP so make >>> the core checks into __transparent_hugepage_enabled and use it for >>> existing callers. __show_smap just use the new transparent_hugepage_enabled >>> which also checks the vma support status (please note that this one has >>> to be out of line due to include dependency issues). >>> >>> Signed-off-by: Michal Hocko <mhocko@xxxxxxxx> >> >> Not thrilled by this, > > Any specific concern? The kitchen sink that smaps slowly becomes, with associated overhead (i.e. one of reasons there's now smaps_rollup). Would be much nicer if userspace had some way to say which fields it's interested in. But I have no good ideas for that right now :/