Re: [PATCH 2/2] Add /proc/PID/{smaps, numa_maps} support for DAX

From: Dave Hansen
Date: Thu Oct 26 2017 - 10:51:26 EST


On 10/26/2017 07:31 AM, Michal Hocko wrote:
> On Thu 26-10-17 07:24:14, Dave Hansen wrote:
>> Actually, I don't remember whether it was tooling or just confused
>> humans. I *think* Dan was trying to write test cases for huge page DAX
>> support and couldn't figure out whether or not it was using large pages.
>
> That sounds like a very weak justification to adding new stuff to smaps
> to be honest.

Yep, agreed. It can't go in _just_ for DAX, and Fan and the other DAX
folks need to elaborate on their needs here.

Do you have any better ideas? If we did this, we could probably make an
argument that the AnonHuge fields could go away some day. They haven't
always been there.

The only other alternative I can think of are truly DAX-specific
interfaces, which also seem like a really bad idea.

> Not only that. There have been reports that reading smaps is too
> expensive. Curiously enough the overhead doesn't come up from
> the data collection but rather copying to the userspace. So we should be
> careful to not print data that is not of general use.

Yikes! I just did a quick:

while true; do cat /proc/*/smaps | wc ; done

and the copying out to userspace is ~1/15th the overhead of
smaps_account(). Something sounds screwy if you're seeing the overhead
at copying to userspace.

What else can we do than continue to bloat smaps? Could we do a file
per VMA?

/proc/$pid/smap/0x123000-0x456000