Re: [PATCH] mm: add ZONE_DEVICE statistics to smaps

From: Dan Williams
Date: Tue Nov 15 2016 - 19:49:05 EST


On Tue, Nov 15, 2016 at 4:15 PM, Dave Hansen <dave.hansen@xxxxxxxxx> wrote:
> On 11/10/2016 02:11 PM, Dan Williams wrote:
>> @@ -774,6 +778,8 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
>> "ShmemPmdMapped: %8lu kB\n"
>> "Shared_Hugetlb: %8lu kB\n"
>> "Private_Hugetlb: %7lu kB\n"
>> + "Device: %8lu kB\n"
>> + "DeviceHugePages: %7lu kB\n"
>> "Swap: %8lu kB\n"
>> "SwapPss: %8lu kB\n"
>> "KernelPageSize: %8lu kB\n"
>
> So, a couple of nits...
>
> smaps is getting a bit big, and the fields that get added in this patch
> are going to be pretty infrequently used. Is it OK if smaps grows
> forever, even if most of them items are "0 kB"?
>
> IOW, Could we make it output Device* only for DAX VMAs? All the parsers
> have to handle that field being there or not (for old kernels).

How about just hiding the field if it is zero? That way it's not an
backdoor way to leak vma_is_dax() which was Christoph's concern.

> The other thing missing for DAX is the page size. DAX mappings support
> mixed page sizes, so MMUPageSize in this context is pretty worthless.
> What will we do in here for 1GB DAX pages?

I was thinking that would be yet another field "DeviceGiganticPages?"
when we eventually add 1GB support (not there today).