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

From: KOSAKI Motohiro
Date: Tue Jan 03 2012 - 12:47:51 EST


(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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/