Re: [PATCH v5 8/8] mm: add vmstat counters for tracking PCP drains

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

 



(1/2/12 5:24 AM), Gilad Ben-Yossef wrote:
> This patch introduces two new vmstat counters: pcp_global_drain
> that counts the number of times a per-cpu pages global drain was
> requested and pcp_global_ipi_saved that counts the number of times
> the number of CPUs with per-cpu pages in any zone were less then
> 1/2 of the number of online CPUs.
> 
> The patch purpose is to show the usefulness of only sending an IPI
> asking to drain per-cpu pages to CPUs that actually have them
> instead of a blind global IPI. It is probably not useful by itself.
> 
> Signed-off-by: Gilad Ben-Yossef<gilad@xxxxxxxxxxxxx>
> CC: Christoph Lameter<cl@xxxxxxxxx>
> CC: Chris Metcalf<cmetcalf@xxxxxxxxxx>
> CC: Peter Zijlstra<a.p.zijlstra@xxxxxxxxx>
> CC: Frederic Weisbecker<fweisbec@xxxxxxxxx>
> CC: linux-mm@xxxxxxxxx
> CC: Pekka Enberg<penberg@xxxxxxxxxx>
> CC: Matt Mackall<mpm@xxxxxxxxxxx>
> CC: Sasha Levin<levinsasha928@xxxxxxxxx>
> CC: Rik van Riel<riel@xxxxxxxxxx>
> CC: Andi Kleen<andi@xxxxxxxxxxxxxx>
> CC: Mel Gorman<mel@xxxxxxxxx>
> CC: Andrew Morton<akpm@xxxxxxxxxxxxxxxxxxxx>
> CC: Alexander Viro<viro@xxxxxxxxxxxxxxxxxx>
> CC: Avi Kivity<avi@xxxxxxxxxx>
> ---
>   include/linux/vm_event_item.h |    1 +
>   mm/page_alloc.c               |    4 ++++
>   mm/vmstat.c                   |    2 ++
>   3 files changed, 7 insertions(+), 0 deletions(-)
> 
> diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h
> index 03b90cd..3657f6f 100644
> --- a/include/linux/vm_event_item.h
> +++ b/include/linux/vm_event_item.h
> @@ -58,6 +58,7 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
>   		THP_COLLAPSE_ALLOC_FAILED,
>   		THP_SPLIT,
>   #endif
> +		PCP_GLOBAL_DRAIN, PCP_GLOBAL_IPI_SAVED,
>   		NR_VM_EVENT_ITEMS
>   };
> 
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 092c331..4ca6bfa 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -1140,6 +1140,10 @@ void drain_all_pages(void)
>   				cpumask_clear_cpu(cpu, cpus_with_pcps);
>   		}
>   	on_each_cpu_mask(cpus_with_pcps, drain_local_pages, NULL, 1);
> +
> +	count_vm_event(PCP_GLOBAL_DRAIN);
> +	if (cpumask_weight(cpus_with_pcps)<  (cpumask_weight(cpu_online_mask) / 2))
> +		count_vm_event(PCP_GLOBAL_IPI_SAVED);

NAK.

PCP_GLOBAL_IPI_SAVED is only useful at development phase. I can't
imagine normal admins use it.



--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
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]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]