All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bharata B Rao <bharata@linux.vnet.ibm.com>
To: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: 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,
	linux-tip-commits@vger.kernel.org,
	Anton Blanchard <anton@au1.ibm.com>
Subject: Re: [tip:sched/core] sched: cpuacct: Use bigger percpu counter batch values for stats counters
Date: Thu, 16 Jul 2009 13:40:10 +0530	[thread overview]
Message-ID: <20090716081010.GB3134@in.ibm.com> (raw)
In-Reply-To: <20090512193656.D647.A69D9226@jp.fujitsu.com>

On Tue, May 12, 2009 at 07:44:37PM +0900, KOSAKI Motohiro wrote:
> ------------------------------------
> Subject: [PATCH] sched: cpuacct: Use bigger percpu counter batch values for stats counters
> 
> percpu counters used to accumulate statistics in cpuacct controller use
> the default batch value [max(2*nr_cpus, 32)] which can be too small for
> archs that define VIRT_CPU_ACCOUNTING. In such archs, a tick could result in
> cputime updates in the range of thousands. As a result, cpuacct_update_stats()
> would end up acquiring the percpu counter spinlock on every tick which
> is not good for performance.
> 
> Let those architectures to have a bigger batch threshold so that percpu counter
> spinlock isn't taken on every tick. This change doesn't affect the archs which
> don't define VIRT_CPU_ACCOUNTING and they continue to have the default
> percpu counter batch value.
> 
>  v7:
>  - fix typo and changelog
> 
>  v6:
>  - fix build error when UP
> 
>  v5:
>  - move cpuacct_batch initialization into sched_init()
> 
>  v4:
>   - rewrite patch description (thanks Bharata!)
>   - append read_mostly to cpuacct_batch
>   - cpuacct_batch is initialized by sched_init_debug()
> 
>  v3:
>   - revert using percpu_counter_sum()
> 
>  v2:
>   - use percpu_counter_sum() instead percpu_counter_read()
> 
> Cc: Balaji Rao <balajirrao@gmail.com>
> Cc: Dhaval Giani <dhaval@linux.vnet.ibm.com>
> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
> Cc: Ingo Molnar <mingo@elte.hu>
> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
> Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com>
> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> ---
>  kernel/sched.c |    9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> Index: b/kernel/sched.c
> ===================================================================
> --- a/kernel/sched.c	2009-05-12 13:12:59.000000000 +0900
> +++ b/kernel/sched.c	2009-05-12 19:04:49.000000000 +0900
> @@ -870,6 +870,8 @@ static __read_mostly int scheduler_runni
>   */
>  int sysctl_sched_rt_runtime = 950000;
> 
> +static __read_mostly s32 cpuacct_batch;
> +
>  static inline u64 global_rt_period(void)
>  {
>  	return (u64)sysctl_sched_rt_period * NSEC_PER_USEC;
> @@ -9284,6 +9286,10 @@ void __init sched_init(void)
> 
>  	perf_counter_init();
> 
> +#ifdef CONFIG_SMP
> +	cpuacct_batch = jiffies_to_cputime(percpu_counter_batch);
> +#endif

On ppc64, calling jiffies_to_cputime() from sched_init() is too early because
jiffies_to_cputime() needs tb_ticks_per_sec which gets initialized only
later in time_init(). Because of this I see that cpuacct_batch will always
be zero effectively negating what this patch is trying to do.

As explained by you earlier, we too are finding the default batch value to
be too low for ppc64 with VIRT_CPU_ACCOUNTING turned on. Hence I guess
if this patch is taken in (ofcourse with the above issue fixed), it will
benefit ppc64 also.

Regards,
Bharata.

  parent reply	other threads:[~2009-07-16  8: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 [this message]
2009-07-16  8:39                             ` Anton Blanchard
2009-08-20  5:10                               ` Anton Blanchard
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=20090716081010.GB3134@in.ibm.com \
    --to=bharata@linux.vnet.ibm.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=anton@au1.ibm.com \
    --cc=balajirrao@gmail.com \
    --cc=balbir@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=linux-tip-commits@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.