Re: [PATCH] cpuacct: reduce one NULL check in fast-path

From: Ingo Molnar
Date: Wed Mar 11 2009 - 05:48:17 EST



* Li Zefan <lizf@xxxxxxxxxxxxxx> wrote:

> In cpuacct_charge(), task_ca() will never return NULL, so change
> for(...) to do{}while(...) to save one NULL check.
>
> Signed-off-by: Li Zefan <lizf@xxxxxxxxxxxxxx>
> ---
> kernel/sched.c | 5 +++--
> 1 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/sched.c b/kernel/sched.c
> index 9bb6d24..bc8a91e 100644
> --- a/kernel/sched.c
> +++ b/kernel/sched.c
> @@ -9768,10 +9768,11 @@ static void cpuacct_charge(struct task_struct *tsk, u64 cputime)
> cpu = task_cpu(tsk);
> ca = task_ca(tsk);
>
> - for (; ca; ca = ca->parent) {
> + do {
> u64 *cpuusage = percpu_ptr(ca->cpuusage, cpu);
> *cpuusage += cputime;
> - }
> + ca = ca->parent;
> + } while (ca);

This patch does not apply cleanly to the latest scheduler tree:

http://people.redhat.com/mingo/tip.git/README

Ingo
--
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/