lkml.org 
[lkml]   [2012]   [Jan]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v5 8/8] mm: add vmstat counters for tracking PCP drains
(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@benyossef.com>
> CC: Christoph Lameter<cl@linux.com>
> CC: Chris Metcalf<cmetcalf@tilera.com>
> CC: Peter Zijlstra<a.p.zijlstra@chello.nl>
> CC: Frederic Weisbecker<fweisbec@gmail.com>
> CC: linux-mm@kvack.org
> CC: Pekka Enberg<penberg@kernel.org>
> CC: Matt Mackall<mpm@selenic.com>
> CC: Sasha Levin<levinsasha928@gmail.com>
> CC: Rik van Riel<riel@redhat.com>
> CC: Andi Kleen<andi@firstfloor.org>
> CC: Mel Gorman<mel@csn.ul.ie>
> CC: Andrew Morton<akpm@linux-foundation.org>
> CC: Alexander Viro<viro@zeniv.linux.org.uk>
> CC: Avi Kivity<avi@redhat.com>
> ---
> 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.





\
 
 \ /
  Last update: 2012-01-03 18:51    [from the cache]
©2003-2011 Jasper Spaans