Re: [rfc 2/2] smaps: Show zone device memory used

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]
  Powered by Linux