All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anton Blanchard <anton@samba.org>
To: Bharata B Rao <bharata@linux.vnet.ibm.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	Ingo Molnar <mingo@elte.hu>,
	Balbir Singh <balbir@linux.vnet.ibm.com>,
	mingo@redhat.com, hpa@zytor.com, linux-kernel@vger.kernel.org,
	a.p.zijlstra@chello.nl, schwidefsky@de.ibm.com,
	balajirrao@gmail.com, dhaval@linux.vnet.ibm.com,
	tglx@linutronix.de, kamezawa.hiroyu@jp.fujitsu.com,
	akpm@linux-foundation.org
Subject: Re: [tip:sched/core] sched: cpuacct: Use bigger percpu counter batch values for stats counters
Date: Thu, 20 Aug 2009 15:10:38 +1000	[thread overview]
Message-ID: <20090820051038.GF21100@kryten> (raw)
In-Reply-To: <20090716083948.GA2950@kryten>


Hi,

Looks like this issue is still present. I tested on a 32 core box and 
the patch improved maximum context switch rate from from 76k/sec to 9.5M/sec.
Thats over 100x faster, or 50x per line of code. That's got to be some sort of
record :)

Any chance we can get a fix in for 2.6.31? Don't make me find an even bigger
box so I can break the 200x mark :)

Anton

> --
> 
> When CONFIG_VIRT_CPU_ACCOUNTING is enabled we can call cpuacct_update_stats
> with values much larger than percpu_counter_batch. This means the
> call to percpu_counter_add will always add to the global count which is
> protected by a spinlock.
> 
> Since reading of the CPU accounting cgroup counters is not performance
> critical, we can use a maximum size batch of INT_MAX and use
> percpu_counter_sum on the read side which will add all the percpu
> counters.
> 
> With this patch an 8 core POWER6 with CONFIG_VIRT_CPU_ACCOUNTING and
> CONFIG_CGROUP_CPUACCT shows an improvement in aggregate context switch rate of
> 397k/sec to 3.9M/sec, a 10x improvement.
> 
> Signed-off-by: Anton Blanchard <anton@samba.org>
> ---
> 
> Index: linux.trees.git/kernel/sched.c
> ===================================================================
> --- linux.trees.git.orig/kernel/sched.c	2009-07-16 10:11:02.000000000 +1000
> +++ linux.trees.git/kernel/sched.c	2009-07-16 10:16:41.000000000 +1000
> @@ -10551,7 +10551,7 @@
>  	int i;
>  
>  	for (i = 0; i < CPUACCT_STAT_NSTATS; i++) {
> -		s64 val = percpu_counter_read(&ca->cpustat[i]);
> +		s64 val = percpu_counter_sum(&ca->cpustat[i]);
>  		val = cputime64_to_clock_t(val);
>  		cb->fill(cb, cpuacct_stat_desc[i], val);
>  	}
> @@ -10621,7 +10621,7 @@
>  	ca = task_ca(tsk);
>  
>  	do {
> -		percpu_counter_add(&ca->cpustat[idx], val);
> +		__percpu_counter_add(&ca->cpustat[idx], val, INT_MAX);
>  		ca = ca->parent;
>  	} while (ca);
>  	rcu_read_unlock();

  reply	other threads:[~2009-08-20  5:11 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-07  9:59 [PATCH v3] cpuacct: VIRT_CPU_ACCOUNTING don't prevent percpu cputime count KOSAKI Motohiro
2009-05-07 10:50 ` Ingo Molnar
2009-05-09  9:26   ` KOSAKI Motohiro
2009-05-09  9:38     ` Peter Zijlstra
2009-05-09  9:52       ` KOSAKI Motohiro
2009-05-09 10:14         ` KOSAKI Motohiro
2009-05-11 12:33           ` [tip:sched/core] sched: cpuacct: Use bigger percpu counter batch values for stats counters tip-bot for KOSAKI Motohiro
2009-05-11 12:36           ` tip-bot for KOSAKI Motohiro
2009-05-11 15:07             ` Ingo Molnar
2009-05-12 10:01               ` KOSAKI Motohiro
2009-05-12 10:02                 ` Peter Zijlstra
2009-05-12 10:06                   ` KOSAKI Motohiro
2009-05-12 10:22                     ` KOSAKI Motohiro
2009-05-12 10:27                       ` Ingo Molnar
2009-05-12 10:42                         ` KOSAKI Motohiro
2009-05-12 10:10                 ` Balbir Singh
2009-05-12 10:13                   ` KOSAKI Motohiro
2009-05-12 10:24                     ` Balbir Singh
2009-05-12 10:29                       ` Ingo Molnar
2009-05-12 10:44                         ` KOSAKI Motohiro
2009-05-12 13:28                           ` Ingo Molnar
2009-05-12 13:40                             ` KOSAKI Motohiro
2009-05-12 13:42                               ` Ingo Molnar
2009-07-16  8:10                           ` Bharata B Rao
2009-07-16  8:39                             ` Anton Blanchard
2009-08-20  5:10                               ` Anton Blanchard [this message]
2009-08-20  5:16                                 ` KAMEZAWA Hiroyuki
2009-08-20  5:26                                 ` Balbir Singh
2009-08-20  5:52                                   ` Peter Zijlstra
2009-08-20  6:05                                     ` Anton Blanchard
2009-08-20  6:10                                       ` KAMEZAWA Hiroyuki
2009-08-20  6:24                                         ` Anton Blanchard
2009-08-20  8:41                                           ` [PATCH] better align percpu counter (Was " KAMEZAWA Hiroyuki
2009-08-20 10:04                                             ` Ingo Molnar
2009-08-21  2:20                                               ` KAMEZAWA Hiroyuki
2009-08-21 11:29                                                 ` Ingo Molnar
2009-08-21  3:56                                             ` KAMEZAWA Hiroyuki
2009-08-20 11:46                                           ` Balbir Singh
2009-08-21  6:21                                           ` KAMEZAWA Hiroyuki
2010-01-18  4:41                                 ` [PATCH] " Anton Blanchard
2010-01-18  4:55                                   ` KOSAKI Motohiro
2010-01-18  7:51                                   ` Peter Zijlstra
2010-01-18  8:21                                     ` Anton Blanchard
2010-01-18  8:34                                       ` Peter Zijlstra
2010-01-18  8:35                                   ` Balbir Singh
2010-01-18  9:42                                   ` Martin Schwidefsky
2010-01-18  9:55                                     ` Anton Blanchard
2010-01-18 11:00                                       ` Balbir Singh
2010-01-21 15:25                                       ` Balbir Singh
2010-01-21 15:36                                         ` Peter Zijlstra
2010-01-25 23:14                                   ` Andrew Morton
2010-01-25 23:44                                     ` KOSAKI Motohiro
2010-01-26  6:17                                     ` Balbir Singh
2010-01-26  6:35                                       ` Andrew Morton
2010-01-26  8:07                                         ` Anton Blanchard
2010-01-27 13:15                                   ` [tip:sched/urgent] " tip-bot for Anton Blanchard
2010-01-27 13:34                                     ` Balbir Singh
2010-01-27 21:22                                       ` Andrew Morton
2010-01-27 21:43                                         ` Peter Zijlstra
2010-01-28 12:48                                           ` [PATCH 1/2] percpu_counter: Make __percpu_counter_add an inline function on UP Anton Blanchard
2010-01-28 12:52                                             ` [PATCH 2/2] sched: cpuacct: Use bigger percpu counter batch values for stats counters Anton Blanchard
2010-01-28  5:21                                         ` [tip:sched/urgent] " Balbir Singh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090820051038.GF21100@kryten \
    --to=anton@samba.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=akpm@linux-foundation.org \
    --cc=balajirrao@gmail.com \
    --cc=balbir@linux.vnet.ibm.com \
    --cc=bharata@linux.vnet.ibm.com \
    --cc=dhaval@linux.vnet.ibm.com \
    --cc=hpa@zytor.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mingo@redhat.com \
    --cc=schwidefsky@de.ibm.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.