On 10/18/2017 12:01 PM, Balbir Singh wrote: > With HMM, we can have either public or private zone > device pages. With private zone device pages, they should > show up as swapped entities. For public zone device pages Might be missing something here but why they should show up as swapped entities ? Could you please elaborate. > the smaps output can be confusing and incomplete. > > This patch adds a new attribute to just smaps to show > device memory usage. If we are any way adding a new entry here then why not one more for private device memory pages as well. Just being curious. > > Signed-off-by: Balbir Singh <bsingharora@xxxxxxxxx> > --- > fs/proc/task_mmu.c | 17 +++++++++++++++-- > 1 file changed, 15 insertions(+), 2 deletions(-) > > diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c > index 9f1e2b2b5f5a..b7f32f42ee93 100644 > --- a/fs/proc/task_mmu.c > +++ b/fs/proc/task_mmu.c > @@ -451,6 +451,7 @@ struct mem_size_stats { > unsigned long shared_hugetlb; > unsigned long private_hugetlb; > unsigned long first_vma_start; > + unsigned long device_memory; > u64 pss; > u64 pss_locked; > u64 swap_pss; > @@ -463,12 +464,22 @@ static void smaps_account(struct mem_size_stats *mss, struct page *page, > int i, nr = compound ? 1 << compound_order(page) : 1; > unsigned long size = nr * PAGE_SIZE; > > + /* > + * We don't want to process public zone device pages further > + * than just showing how much device memory we have > + */ > + if (is_zone_device_page(page)) { Should not this contain both public and private device pages. > + mss->device_memory += size; > + return; > + } > + > if (PageAnon(page)) { > mss->anonymous += size; > if (!PageSwapBacked(page) && !dirty && !PageDirty(page)) > mss->lazyfree += size; > } > > + Stray new line. > mss->resident += size; > /* Accumulate the size in pages that have been accessed. */ > if (young || page_is_young(page) || PageReferenced(page)) > @@ -833,7 +844,8 @@ static int show_smap(struct seq_file *m, void *v, int is_pid) > "Private_Hugetlb: %7lu kB\n" > "Swap: %8lu kB\n" > "SwapPss: %8lu kB\n" > - "Locked: %8lu kB\n", > + "Locked: %8lu kB\n" Stray changed line. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>