Re: [PATCH v3] cpuacct: VIRT_CPU_ACCOUNTING don't prevent percpu cputime count

Peter Zijlstra
2009-05-09T09:39:11Z

On Sat, 2009-05-09 at 18:26 +0900, KOSAKI Motohiro wrote:
>
> Index: b/kernel/sched.c
> ===================================================================
> --- a/kernel/sched.c 2009-05-09 16:48:08.000000000 +0900
> +++ b/kernel/sched.c 2009-05-09 18:16:00.000000000 +0900
> @@ -824,8 +824,12 @@ static struct file_operations sched_feat
> .release = single_release,
> };
>
> +static __read_mostly s32 cpuacct_batch;
> +
> static __init int sched_init_debug(void)
> {
> + cpuacct_batch = jiffies_to_cputime(percpu_counter_batch);
> +
> debugfs_create_file("sched_features", 0644, NULL, NULL,
> &sched_feat_fops);

I'm pretty user you can select cpu accounting without SCHED_DEBUG...

> @@ -10457,7 +10461,8 @@ static void cpuacct_update_stats(struct
> ca = task_ca(tsk);
>
> do {
> - percpu_counter_add(&ca->cpustat[idx], val);
> + __percpu_counter_add(&ca->cpustat[idx], val, cpuacct_batch);
> +
> ca = ca->parent;
> } while (ca);
> rcu_read_unlock();
>